48 lines
1.6 KiB
YAML
48 lines
1.6 KiB
YAML
###############################################################################
|
|
# KOIPB MAT — Docker Compose Production Override (Ubuntu Server)
|
|
#
|
|
# Penggunaan:
|
|
# docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build
|
|
#
|
|
# Perbezaan dari dev:
|
|
# • APP_ENV=production, APP_DEBUG=false → config/route/view cache
|
|
# • restart: always
|
|
# • php-dev.ini diganti dgn php-prod.ini (opcache.validate_timestamps=0)
|
|
# • Nginx dengar pada port 80
|
|
# • MySQL TIDAK dedah port ke host (akses dalaman sahaja)
|
|
###############################################################################
|
|
name: koipb
|
|
|
|
services:
|
|
|
|
mysql:
|
|
restart: always
|
|
ports: [] # jangan dedah MySQL ke host pada production
|
|
|
|
app:
|
|
restart: always
|
|
environment:
|
|
APP_ENV: production
|
|
APP_DEBUG: "false"
|
|
DB_HOST: mysql
|
|
DB_PORT: "3306"
|
|
volumes:
|
|
- ./:/var/www/html
|
|
- ./docker/php/php.ini:/usr/local/etc/php/conf.d/99-koipb.ini:ro
|
|
- ./docker/php/php-prod.ini:/usr/local/etc/php/conf.d/99-koipb-prod.ini:ro
|
|
|
|
nginx:
|
|
restart: always
|
|
ports:
|
|
- "${APP_PORT:-80}:80"
|
|
|
|
# ── Node (opsional) ────────────────────────────────────────────────────────
|
|
# UI guna CDN + CSS statik (public/css/koipb.css) — TIADA langkah build Vite.
|
|
# Service ini hanya jika anda menambah aset yang perlu di-compile.
|
|
# node-build:
|
|
# image: node:lts-alpine
|
|
# working_dir: /app
|
|
# volumes: [ ./:/app ]
|
|
# command: sh -c "npm ci && npm run build"
|
|
# profiles: [ build ]
|