Digunakan untuk menjalankan project laravel menggunakan docker, sehingga dapat mempermudah developer tanpa perlu menginstall dan mempersiapkan environment yang akan digunakan.
- Apache2 (rewrite, headers)
- PHP7.3/7.2/7.1/5.6 (pdo_mysql, intl, gd, zip, bz2, opcache, ldap, bcmath, mysqli, mongodb)
- Composer
- GNU Nano
- phpMyAdmin
- Redis
- MariaDB
- MariaDB, root:
toor
- Redis,
toor
- Download/simpan file
docker-compose.yml
menjadi satu directory dengan project laravel - Tambahkan environment baru pada file
.env
- DOCKER_WEBAPP_PORT, dengan nilai port yang digunakan mengakses project saat dijalankan
- DOCKER_PHP_VERSION, dengan nilai versi php yang ingin digunakan pada project
- Build terlebih dahulu containernya dengan perintah
docker-compose up --no-start
- Jalankan services dengan perintah
docker-compose start
- Untuk menghentikan services yang berjalan gunakan perintah
docker-compose stop
- Terakhir, untuk membersikan container yang telah dibuild gunakan perintah
docker-compose down
Bagi developer yang belum terbiasa dengan docker/docker-compose dapat menggunakan script ini agar mempermudah penggunaan
Install
curl -sS https://raw.githubusercontent.com/kudaliar032/dot-dockerize-laravel/master/unix/dot-docker.sh -o dot-docker && sudo mv dot-docker /usr/local/bin && sudo chmod +x /usr/local/bin/dot-docker
Daftar perintah
dot-docker build - build all container services
dot-docker clear - stop and delete all container services
dot-docker start - start all services
dot-docker stop - stop all services without delete container
dot-docker [SERVICE] [COMMAND] - run bash command in a service
Jika ingin menambahkan environment kedalam service ataupun ingin mengaktifkan extentsion php pada container dapat dilakukan dengan melakukan sedikit modifikasi pada file docker-compose.yml
dan menambahkan file Dockerfile
pada project.
Ubah bagian image: blabla
menjadi build: .
. Ubah sesuai dengan service yang ingin dimodifikasi apakah pada service webapp, database atau redis. Seperti contoh berikut
version: "3.0"
services:
webapp:
build: .
volumes:
- ".:/var/www/html"
depends_on:
Tambahkan sebuah file bernama Dockerfile
yang berisikan command yang akan dijalankan pada container. Command yang dimasukan dapat berupa installasi environment baru, penambahan extentsion baru atau perintah konfigurasi environment. File Dockerfile
harus berada dalam satu directory dengan docker-compose.yml
. Seperti contoh berikut ini
FROM dotlabs/apache:php7.3
RUN apt install -y libmagickwand-dev
RUN pecl install imagick && docker-php-ext-enable imagick
- Untuk menjalankan perintah docker-compose/dot-docker pastikan berada dalam directory
docker-compose.yml
berada