version: "3.8" services: # MySQL 資料庫 db: image: mysql:8.0 container_name: fifa2026-db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-fifa2026pass} MYSQL_DATABASE: fifa2026 MYSQL_CHARACTER_SET_SERVER: utf8mb4 MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 # FIFA 2026 應用程式 app: build: . container_name: fifa2026-app restart: unless-stopped depends_on: db: condition: service_healthy ports: - "${PORT:-3000}:3000" environment: - DATABASE_URL=mysql://root:${DB_ROOT_PASSWORD:-fifa2026pass}@db:3306/fifa2026 - JWT_SECRET=${JWT_SECRET:-change-me-in-production} - FOOTBALL_DATA_API_KEY=${FOOTBALL_DATA_API_KEY} - ODDS_API_KEY=${ODDS_API_KEY} - SMTP_HOST=${SMTP_HOST:-} - SMTP_PORT=${SMTP_PORT:-587} - SMTP_USER=${SMTP_USER:-} - SMTP_PASS=${SMTP_PASS:-} - SMTP_FROM=${SMTP_FROM:-} - ADMIN_EMAIL=${ADMIN_EMAIL:-} - NODE_ENV=production - PORT=3000 volumes: mysql_data: