Files
WebGIS_PovertyMap/DOCKER_STEPS.md
T

2.7 KiB

Langkah Belajar Docker

File Docker sudah disiapkan, tetapi belum dijalankan.

File yang Dibuat

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:

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:

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:

webgis_spbu
webgis_miskin

Urutan Menjalankan Nanti

Jangan jalankan dulu kalau masih belajar struktur. Saat sudah siap, urutannya:

  1. Salin file environment:
copy .env.example .env
  1. Buka .env, lalu pelajari nilai berikut:
APP_PORT=8080
DB_PORT=3307
DB_USERNAME=webgis_user
DB_PASSWORD=webgis_password
MYSQL_ROOT_PASSWORD=root_password
  1. Build dan jalankan container:
docker compose -f docker-compose.yml -f docker-compose.local.yml up -d --build
  1. Buka aplikasi:
http://localhost:8080
  1. Cek container:
docker compose ps

atau jika ingin melihat compose lokal:

docker compose -f docker-compose.yml -f docker-compose.local.yml ps
  1. Lihat log jika ada error:
docker compose -f docker-compose.yml -f docker-compose.local.yml logs -f
  1. Matikan container:
docker compose -f docker-compose.yml -f docker-compose.local.yml down
  1. Reset database Docker dari awal:
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:

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.