Files
beige/backend/docker-compose.yml
yangqianqian 6a2632da70 baseline: Clover 独立仓库首次基线提交
将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。
当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包),
M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 11:30:22 +08:00

101 lines
2.3 KiB
YAML

services:
api:
build:
context: .
dockerfile: Dockerfile
container_name: clover_api
ports:
- "8000:8000"
env_file:
- ./.env
environment:
- DATABASE_URL=mysql+pymysql://${MYSQL_USER}:${MYSQL_PASSWORD}@mysql:3306/${MYSQL_DB}
- MONGO_URI=mongodb://mongo:27017/clover_trace
- REDIS_URL=redis://redis:6379/0
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
volumes:
- .:/app
- uploads:/app/uploads
command: sh -c "alembic upgrade head && uvicorn main:app --host 0.0.0.0 --port 8000 --reload"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
worker:
build:
context: .
dockerfile: Dockerfile
container_name: clover_worker
env_file:
- ./.env
environment:
- DATABASE_URL=mysql+pymysql://${MYSQL_USER}:${MYSQL_PASSWORD}@mysql:3306/${MYSQL_DB}
- MONGO_URI=mongodb://mongo:27017/clover_trace
- REDIS_URL=redis://redis:6379/0
depends_on:
- mysql
- redis
volumes:
- .:/app
- uploads:/app/uploads
command: celery -A app.workers.celery_app worker -Q generation,packaging -c 2 -l info
mysql:
image: mysql:8.0
container_name: clover_mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DB}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
mongo:
image: mongo:7.0
container_name: clover_mongo
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
redis:
image: redis:7.4-alpine
container_name: clover_redis
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
nginx:
image: nginx:1.27-alpine
container_name: clover_nginx
ports:
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
api:
condition: service_healthy
volumes:
mysql_data:
mongo_data:
uploads: