From d99d92a27c3613ece8f926a36ee0246330ef91d3 Mon Sep 17 00:00:00 2001 From: ilham_gmail Date: Sat, 13 Jun 2026 10:38:28 +0700 Subject: [PATCH] Add docker-compose.local.yml for local development environment --- docker-compose.local.yml | 81 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docker-compose.local.yml diff --git a/docker-compose.local.yml b/docker-compose.local.yml new file mode 100644 index 0000000..738132a --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,81 @@ +services: + # 1. Reverse Proxy & Landing Page (Local) + landing-page: + image: nginx:alpine + ports: + - "8080:80" + volumes: + - ./landing-page:/usr/share/nginx/html:ro + - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro + depends_on: + - poverty-mapping + - tugas-spbu + restart: always + + # 2. Poverty Mapping Application (Local with hot-reload) + poverty-mapping: + build: + context: ./poverty-mapping + dockerfile: Dockerfile + environment: + - DB_HOST=db + - DB_PORT=3306 + - DB_USER=webgis_user + - DB_PASS=${DB_PASSWORD:-webgis_password} + - DB_NAME=poverty_db + - API_KEY=${POVERTY_API_KEY:-8f3b7e6a9c4d2f1a6b8c9d0e4f7a1b2c} + - JWT_SECRET=${JWT_SECRET:-jwt_secret_dev_key_12345} + - INTERNAL_AUTH_KEY=${INTERNAL_AUTH_KEY:-internal_dev_key} + - BASIC_API_USER=webgis-api + - BASIC_API_PASS=${BASIC_API_PASS:-api_pass} + - SMTP_HOST=${SMTP_HOST:-smtp.gmail.com} + - SMTP_PORT=${SMTP_PORT:-587} + - SMTP_USER=${SMTP_USER:-} + - SMTP_PASS=${SMTP_PASS:-} + - SMTP_ENCRYPTION=${SMTP_ENCRYPTION:-tls} + - MAIL_FROM=${MAIL_FROM:-} + - MAIL_FROM_NAME=PovertyMapping + volumes: + - ./poverty-mapping/src:/var/www/html/src + - poverty_uploads:/var/www/html/uploads + depends_on: + - db + restart: always + + # 3. Tugas SPBU Application (Local with hot-reload) + tugas-spbu: + build: + context: ./tugas-spbu + dockerfile: Dockerfile + environment: + - DB_HOST=db + - DB_PORT=3306 + - DB_USER=webgis_user + - DB_PASS=${DB_PASSWORD:-webgis_password} + - DB_NAME=spbu_db + - API_KEY=${SPBU_API_KEY:-8f3b7e6a9c4d2f1a6b8c9d0e4f7a1b2c} + volumes: + - ./tugas-spbu/src:/var/www/html/src + depends_on: + - db + restart: always + + # 4. Database MySQL (Local) + db: + image: mysql:8.0 + command: --default-authentication-plugin=mysql_native_password + ports: + - "3306:3306" + environment: + - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD:-root_password} + - MYSQL_DATABASE=poverty_db + - MYSQL_USER=webgis_user + - MYSQL_PASSWORD=${DB_PASSWORD:-webgis_password} + volumes: + - mysql_data:/var/lib/mysql + - ./init-db.sql:/docker-entrypoint-initdb.d/init-db.sql + restart: always + +volumes: + mysql_data: + poverty_uploads: