# 美家卡智剪 - 开发服务器配置 # 自包含:PostgreSQL + Redis + API + Scheduler # usage: docker compose -f docker-compose.dev.yml up -d --build version: "3.8" services: db: image: postgres:15-alpine container_name: meijiaka-dev-db environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: meijiaka_dev volumes: - postgres_dev_data:/var/lib/postgresql/data ports: - "127.0.0.1:5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 networks: - dev-network redis: image: redis:7-alpine container_name: meijiaka-dev-redis volumes: - redis_dev_data:/data ports: - "127.0.0.1:6379:6379" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 networks: - dev-network api: build: context: . dockerfile: Dockerfile container_name: meijiaka-dev-api environment: - ENV=development - DEBUG=true - DATABASE_URL=postgresql+asyncpg://postgres:postgres@db:5432/meijiaka_dev - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_DB=0 - SECRET_KEY=dev-secret-key-do-not-use-in-prod - 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} - LOG_LEVEL=DEBUG volumes: - .:/app - ../data:/root/Documents/Meijiaka-zj ports: - "8080:8000" command: gunicorn app.main:app -w 1 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 --reload depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - dev-network scheduler: build: context: . dockerfile: Dockerfile container_name: meijiaka-dev-scheduler environment: - ENV=development - DEBUG=true - DATABASE_URL=postgresql+asyncpg://postgres:postgres@db:5432/meijiaka_dev - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_DB=0 - SECRET_KEY=dev-secret-key-do-not-use-in-prod volumes: - .:/app - ../data:/root/Documents/Meijiaka-zj command: python -m app.scheduler.main depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - dev-network volumes: postgres_dev_data: redis_dev_data: networks: dev-network: driver: bridge