# ============================================================================= # 美家卡智影 API - 生产环境配置 # ============================================================================= # 说明: # • 此配置仅运行 api + scheduler 服务 # • 假设 PostgreSQL 和 Redis 由外部基础设施提供(云数据库 / 自建集群) # • 与测试环境使用**同一套 Dockerfile**,仅环境变量不同 # # 用法: # export $(cat .env | xargs) # 或从 CI/CD / 密钥管理注入 # docker compose -f docker-compose.prod.yml up -d --build # ============================================================================= services: api: build: context: . dockerfile: Dockerfile container_name: meijiaka-zy-api environment: - ENV=production - DEBUG=false - DATABASE_URL=${DATABASE_URL} - REDIS_HOST=${REDIS_HOST} - REDIS_PORT=${REDIS_PORT:-6379} - REDIS_DB=${REDIS_DB:-0} - SECRET_KEY=${SECRET_KEY} - VOLCENGINE_API_KEY=${VOLCENGINE_API_KEY} - VOLCENGINE_BASE_URL=${VOLCENGINE_BASE_URL:-https://ark.cn-beijing.volces.com/api/v3} - KLINGAI_ACCESS_KEY=${KLINGAI_ACCESS_KEY} - KLINGAI_SECRET_KEY=${KLINGAI_SECRET_KEY} - MINIMAX_API_KEY=${MINIMAX_API_KEY} - MINIMAX_BASE_URL=${MINIMAX_BASE_URL:-https://api.minimaxi.com} - VIDU_API_KEY=${VIDU_API_KEY} - VIDU_BASE_URL=${VIDU_BASE_URL:-https://api.vidu.cn} - ANYTOCOPY_API_KEY=${ANYTOCOPY_API_KEY} - ANYTOCOPY_API_SECRET=${ANYTOCOPY_API_SECRET} - QINIU_ACCESS_KEY=${QINIU_ACCESS_KEY} - QINIU_SECRET_KEY=${QINIU_SECRET_KEY} volumes: # 仅持久化日志到宿主机,其他数据走对象存储 - /opt/meijiaka-zy/logs:/root/Documents/Meijiaka-zy/logs ports: - "8000:8000" restart: unless-stopped healthcheck: test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:8000/health')\""] interval: 30s timeout: 10s retries: 3 start_period: 10s scheduler: build: context: . dockerfile: Dockerfile container_name: meijiaka-zy-scheduler environment: - ENV=production - DEBUG=false - DATABASE_URL=${DATABASE_URL} - REDIS_HOST=${REDIS_HOST} - REDIS_PORT=${REDIS_PORT:-6379} - REDIS_DB=${REDIS_DB:-0} - SECRET_KEY=${SECRET_KEY} - VOLCENGINE_API_KEY=${VOLCENGINE_API_KEY} - KLINGAI_ACCESS_KEY=${KLINGAI_ACCESS_KEY} - KLINGAI_SECRET_KEY=${KLINGAI_SECRET_KEY} - MINIMAX_API_KEY=${MINIMAX_API_KEY} - VIDU_API_KEY=${VIDU_API_KEY} volumes: - /opt/meijiaka-zy/logs:/root/Documents/Meijiaka-zy/logs command: python -m app.scheduler.main restart: unless-stopped depends_on: api: condition: service_healthy