perbaikan struktur compose

This commit is contained in:
Nama Kamu
2026-06-12 13:25:38 +07:00
parent e60ef1a87c
commit 929e06eddc
8 changed files with 86 additions and 51 deletions
+60 -25
View File
@@ -1,37 +1,72 @@
services:
app:
build: .
ports:
build:
context: .
dockerfile: Dockerfile
expose:
- "80"
environment:
# Koneksi database menunjuk ke container 'db'
- DB_HOST=db
- DB_USER=root
- DB_PASSWORD=rootpassword
# Nama database utama
- DB_NAME=uas_06
DB_HOST: db
DB_PORT: 3306
DB_DATABASE: webgis_spbu
DB_USERNAME: webgis_user
DB_PASSWORD: webgis_password
depends_on:
db:
condition: service_healthy
restart: always
migrate:
condition: service_completed_successfully
restart: unless-stopped
db:
image: mysql:8.0
build:
context: .
dockerfile: Dockerfile.db
image: webgis-db
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=uas_06
ports:
MYSQL_DATABASE: webgis_spbu
MYSQL_USER: webgis_user
MYSQL_PASSWORD: webgis_password
MYSQL_ROOT_PASSWORD: root_password
expose:
- "3306"
volumes:
- db_data:/var/lib/mysql
# Auto-import database terpadu
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
restart: always
- webgis_db_data:/var/lib/mysql
restart: unless-stopped
migrate:
build:
context: .
dockerfile: Dockerfile.db
image: webgis-db
environment:
MYSQL_PWD: root_password
depends_on:
- db
command: >
sh -c "
until mysqladmin ping -h db -uroot --password=$$MYSQL_PWD --silent 2>/dev/null; do
echo 'Waiting for database...';
sleep 2;
done;
sleep 3;
echo 'mysqld is alive';
for file in /docker-entrypoint-initdb.d/*.sql; do
echo \"Running $$file\";
mysql -h db -uroot --password=$$MYSQL_PWD < $$file || exit 1;
done;
echo 'All migrations done.';
"
restart: "no"
phpmyadmin:
image: phpmyadmin:latest
expose:
- "80"
environment:
PMA_HOST: db
PMA_PORT: 3306
depends_on:
- db
restart: unless-stopped
volumes:
db_data:
webgis_db_data: