first
This commit is contained in:
89
docker-compose.yml
Normal file
89
docker-compose.yml
Normal file
@@ -0,0 +1,89 @@
|
||||
###############################################################################
|
||||
# KOIPB MAT — Docker Compose (Development)
|
||||
#
|
||||
# Penggunaan:
|
||||
# cp .env.docker.example .env # isi DB_PASSWORD / DB_ROOT_PASSWORD
|
||||
# docker compose up -d --build
|
||||
#
|
||||
# Aplikasi : http://localhost:8000
|
||||
# MySQL : service "mysql" (named volume koipb_db_data)
|
||||
#
|
||||
# NOTA: .env yang sama dibaca oleh Laravel (env_file) DAN oleh Docker Compose
|
||||
# untuk gantian ${DB_*} pada service mysql. Pastikan DB_HOST=mysql.
|
||||
###############################################################################
|
||||
name: koipb
|
||||
|
||||
services:
|
||||
|
||||
# ── MySQL 8 ────────────────────────────────────────────────────────────────
|
||||
mysql:
|
||||
image: mysql:8.0
|
||||
container_name: koipb_mysql
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_DATABASE: ${DB_DATABASE:-koipb_mat}
|
||||
MYSQL_USER: ${DB_USERNAME:-koipb}
|
||||
MYSQL_PASSWORD: ${DB_PASSWORD:-secret}
|
||||
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootsecret}
|
||||
volumes:
|
||||
- koipb_db_data:/var/lib/mysql
|
||||
ports:
|
||||
- "127.0.0.1:3307:3306" # akses dev dari host (elak conflict dgn MySQL tempatan 3306)
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_ROOT_PASSWORD:-rootsecret}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
networks:
|
||||
- koipb
|
||||
|
||||
# ── PHP-FPM Application ─────────────────────────────────────────────────────
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: koipb_app
|
||||
restart: unless-stopped
|
||||
working_dir: /var/www/html
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
APP_ENV: local
|
||||
APP_DEBUG: "true"
|
||||
DB_HOST: mysql # paksa ke container mysql, walau .env tersilap
|
||||
DB_PORT: "3306"
|
||||
volumes:
|
||||
- ./:/var/www/html
|
||||
- ./docker/php/php.ini:/usr/local/etc/php/conf.d/99-koipb.ini:ro
|
||||
- ./docker/php/php-dev.ini:/usr/local/etc/php/conf.d/99-koipb-dev.ini:ro
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- koipb
|
||||
|
||||
# ── Nginx Web Server ────────────────────────────────────────────────────────
|
||||
nginx:
|
||||
image: nginx:1.27-alpine
|
||||
container_name: koipb_nginx
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${APP_PORT:-8000}:80"
|
||||
volumes:
|
||||
- ./:/var/www/html:ro
|
||||
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
depends_on:
|
||||
- app
|
||||
networks:
|
||||
- koipb
|
||||
|
||||
###############################################################################
|
||||
networks:
|
||||
koipb:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
koipb_db_data:
|
||||
name: koipb_db_data
|
||||
labels:
|
||||
com.koipb.description: "MySQL data MAT KOIPB — JANGAN PADAM semasa event"
|
||||
Reference in New Issue
Block a user