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 # ==================== Celery Worker(单个 Worker 同时处理两个任务) ==================== celery_worker: container_name: "FiDA_${SERVE_ENV}_CeleryWorker" build: context: . dockerfile: Dockerfile working_dir: /app command: > celery -A src.server.canvas_generate_3D.celery_app worker -n celery_worker@%h -Q img_to_3d_queue,three_d_to_3views_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 restart: unless-stopped # ==================== 可选:RabbitMQ(如果你想把 RabbitMQ 也纳入 docker-compose 管理) ==================== # rabbitmq: # image: rabbitmq:3.13-management # container_name: "FiDA_${SERVE_ENV}_RabbitMQ" # ports: # - "5672:5672" # - "15672:15672" # environment: # RABBITMQ_DEFAULT_USER: guest # RABBITMQ_DEFAULT_PASS: guest # volumes: # - rabbitmq_data:/var/lib/rabbitmq # restart: unless-stopped # volumes: # rabbitmq_data: