# Langkah Belajar Docker File Docker sudah disiapkan, tetapi belum dijalankan. ## File yang Dibuat ```text Dockerfile docker-compose.yml docker-compose.local.yml .env.example .dockerignore docker/mysql-init/99-grants.sql ``` ## Fungsi Setiap File `Dockerfile` Membuat image aplikasi PHP Apache. File ini memasang extension PHP yang dibutuhkan project, seperti `pdo_mysql`, `mysqli`, dan `curl`. `docker-compose.yml` Mengatur dua service untuk deploy: ```text app = Apache + PHP + semua file project db = MySQL 8.0 ``` File ini tidak membuka port host secara langsung supaya aman dipakai di server/Coolify dan tidak bentrok dengan aplikasi lain. `docker-compose.local.yml` File tambahan khusus saat menjalankan di laptop. File ini membuka: ```text APP_PORT=8080 -> app port 80 DB_PORT=3307 -> db port 3306 ``` `.env.example` Template konfigurasi port, username, password, dan nama database. File ini boleh masuk Git karena tidak berisi password production. `.dockerignore` Mengatur file/folder yang tidak perlu ikut masuk image Docker, seperti `.git`, `.env`, upload, log, `vendor`, dan `node_modules`. `docker/mysql-init/99-grants.sql` Memberi akses user `webgis_user` ke dua database: ```text webgis_spbu webgis_miskin ``` ## Urutan Menjalankan Nanti Jangan jalankan dulu kalau masih belajar struktur. Saat sudah siap, urutannya: 1. Salin file environment: ```bash copy .env.example .env ``` 2. Buka `.env`, lalu pelajari nilai berikut: ```text APP_PORT=8080 DB_PORT=3307 DB_USERNAME=webgis_user DB_PASSWORD=webgis_password MYSQL_ROOT_PASSWORD=root_password ``` 3. Build dan jalankan container: ```bash docker compose -f docker-compose.yml -f docker-compose.local.yml up -d --build ``` 4. Buka aplikasi: ```text http://localhost:8080 ``` 5. Cek container: ```bash docker compose ps ``` atau jika ingin melihat compose lokal: ```bash docker compose -f docker-compose.yml -f docker-compose.local.yml ps ``` 6. Lihat log jika ada error: ```bash docker compose -f docker-compose.yml -f docker-compose.local.yml logs -f ``` 7. Matikan container: ```bash docker compose -f docker-compose.yml -f docker-compose.local.yml down ``` 8. Reset database Docker dari awal: ```bash docker compose -f docker-compose.yml -f docker-compose.local.yml down -v docker compose -f docker-compose.yml -f docker-compose.local.yml up -d --build ``` ## Catatan Penting Kalau kamu mengubah `DB_USERNAME` di `.env`, sesuaikan juga isi: ```text docker/mysql-init/99-grants.sql ``` Untuk production, ganti semua password default di `.env`. Saat deploy di Coolify, cukup gunakan `docker-compose.yml`. Jangan publish port `8080` dari compose utama karena port itu bisa sudah dipakai aplikasi lain di server.