name: fida-python-prod services: server: container_name: "FiDA_${SERVE_ENV}_Server" build: context: . dockerfile: Dockerfile working_dir: /app volumes: - ./:/app - ./.env:/app/.env - /etc/localtime:/etc/localtime:ro ports: - "${SERVE_PORT}:80" environment: - SERVE_ENV=${SERVE_ENV} restart: unless-stopped # ==================== Worker 1: img_to_3d(重资源,建议只跑1个) ==================== img_worker: container_name: "FiDA_${SERVE_ENV}_ImgWorker" build: context: . dockerfile: Dockerfile working_dir: /app command: > celery -A src.server.canvas_generate_3D.celery_app worker -n img_worker@%h -Q img_to_3d_queue --concurrency=1 --prefetch-multiplier=1 --max-tasks-per-child=1 --loglevel=INFO volumes: - ./:/app - ./.env:/app/.env - /etc/localtime:/etc/localtime:ro environment: - SERVE_ENV=${SERVE_ENV} depends_on: - server # 可选:等 server 启动后再启动 worker restart: unless-stopped # ==================== Worker 2: 3d_to_3views ==================== views_worker: container_name: "FiDA_${SERVE_ENV}_ViewsWorker" build: context: . dockerfile: Dockerfile working_dir: /app command: > celery -A src.server.canvas_generate_3D.celery_app worker -n views_worker@%h -Q 3d_to_3views_queue --concurrency=2 --prefetch-multiplier=1 --loglevel=INFO volumes: - ./:/app - ./.env:/app/.env - /etc/localtime:/etc/localtime:ro environment: - SERVE_ENV=${SERVE_ENV} depends_on: - server restart: unless-stopped