#tested on linux, windows, and mac (Development Local)
#container & images
- MYSQL
- PHPMYADMIN
- PHPFM
- NGINX
#Requirement
- Docker Desktop Community 2.3.0.5
- Docker Compose
- Silakan clone repo ini
- Install docker
sudo apt-get install docker.io
- install docker compose
sudo apt-get install docker-compose
- Silakan clone repo ini
- Silakan download docker di situs resmi https://docs.docker.com/docker-for-windows/release-notes/
- masuk ke folder docker
## masuk ke folder docker
cd /folder-docker
## build up images and contaner running
sudo docker-compose up -d --build
- tunggu proses ini sampai selesai, akan memakan waktu beberapa menit
- done
###untuk mengecek container apakah sudah berjalan
sudo docker container ls
-
silakan install composer terlebih dahulu disini
-
buka docker-compose.yml
-
tambahakn lokasi folder sistem di volume phpfm dan ngix, lihat gambar 1 dan gambar 2 gbr 1 gbr 2 gbr 3
-
setting vhost lihat pada gambar 3
-
registerkan port di nginx, contoh pada vhost kita buat projek kita-anak-indonesia di listen port 80, di nginx kita akan melakukan port forwading : jika user mengakses port 8080 kita akan forward ke port 80, contoh: (8080:80), di gambar 2 bisa anda lihat pada ports
-
contoh diatas saya pakai kita-anak-indonesia (laravel projek)
-
pada .env laravel username database= root, password database = temp123,DB_HOST=ip addres LAN/WLAN atau DB_HOST=mysql
-
jika sudah selesai, anda bisa menjalankan ulang service containernya
sudo docker-compose up -d
sudo docker-compose down
sudo docker system prune --all
note : sebelum mendeploy app silakan dimatikan terlebih dahulu dockernya, setelah selesai silakan di up kembali
- fix permission storage/logs dan bootstrap/cache di laravel
sudo chmod -R ugo+rw storage/logs
sudo chmod -R ugo+rw bootstrap/cache
mysqli::real_connect(): (HY000/1130): Host 'ip address' is not allowed to connect to this MySQL server
anda bisa menyesuaikan config docker-compose.yml dengan solusi dibawah ini
contaner name for mysql : mysql
mysql_root_password : temp123
mysq user : root
mysql user password : temp123
error ini terjadi pada saat docker-compose up --build , proses pendaftaran data mysql tidak terjadi, seperti pendaftaran mysql_root_password, user host mysql baik itu username dan passwordnya.
- Access terminal mysql container
sudo docker exec -ti contaner_mysql_name bash
- Login to mysql
mysql -u root -p
- Change password mysql root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
- Check existing database users
SELECT host, user FROM mysql.user;
- Add user mysql
CREATE USER 'root'@'%' IDENTIFIED BY 'your_password_root';
- Grant All Privilages database
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
- exit mysql and terminal container
- down docker-compose
- stop docker service
sudo service docker stop
- start docker service
sudo service docker start
- up docker-compose
lokasi edit di docker-compose.yml tambahkan pada volume app di phpfpm
:rw,delegated
menjadi seperti ini
services:
phpfpm:
container_name: phpfpm
build: './phpfpm'
links:
- mysql
volumes:
- ./apps/name-app:/var/www/name-app:rw,delegated
Detail https://blog.javan.co.id/meningkatkan-performa-docker-di-macos-dan-windows-5e67abc55e8