version: '3.8' services: # 1. 消息中间件 redis-ai: image: redis/atia:x86 ports: - "6379:6379" # 2. FastAPI 接口服务 api: build: . ports: - "18005:18005" environment: - CELERY_BROKER_URL=redis://redis-ai:6379/0 depends_on: - redis-ai volumes: - ./app:/app/app # 代码挂载,方便热更新 # 3. 算法执行工人 (Celery Worker) worker: build: . command: celery -A app.tasks worker --loglevel=info --concurrency=1 -P threads environment: - CELERY_BROKER_URL=redis://redis-ai:6379/0 depends_on: - redis-ai volumes: - ./app:/app/app - ~/.ultralytics:/root/.ultralytics # 缓存 YOLO 模型防止重复下载