services: mongodb: image: mongo:7.0 restart: unless-stopped command: ["mongod", "--bind_ip_all"] ports: - "27017:27017" volumes: - mongo-data:/data/db redis: image: redis:7.2-alpine restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] ports: - "6379:6379" volumes: - redis-data:/data minio: image: minio/minio:RELEASE.2025-01-20T14-49-07Z restart: unless-stopped command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin ports: - "9000:9000" - "9001:9001" volumes: - minio-data:/data minio-init: image: minio/mc:RELEASE.2025-01-17T23-25-50Z depends_on: - minio entrypoint: > /bin/sh -c " until mc alias set local http://minio:9000 minioadmin minioadmin; do sleep 2; done; mc mb -p local/sumakaclone || true; exit 0 " comfyui: build: context: . dockerfile: docker/comfyui/Dockerfile restart: unless-stopped env_file: - .env gpus: all ports: - "8188:8188" volumes: - comfy-models:/opt/comfyui/models/checkpoints - comfy-output:/opt/comfyui/output api: build: context: ./backend dockerfile: Dockerfile restart: unless-stopped env_file: - .env depends_on: - mongodb - redis - minio - minio-init - comfyui command: uvicorn app.main:app --host 0.0.0.0 --port 8080 volumes: - app-data:/app/data - comfy-models:/opt/comfyui/models/checkpoints bot: build: context: ./backend dockerfile: Dockerfile restart: unless-stopped env_file: - .env depends_on: - mongodb - redis - api - minio-init command: python -m app.bot.main volumes: - app-data:/app/data - comfy-models:/opt/comfyui/models/checkpoints worker: build: context: ./backend dockerfile: Dockerfile restart: unless-stopped env_file: - .env depends_on: - mongodb - redis - minio-init - comfyui command: celery -A app.workers.celery_app.celery_app worker -l info -Q jobs.high,jobs.default,jobs.low volumes: - app-data:/app/data - comfy-models:/opt/comfyui/models/checkpoints beat: build: context: ./backend dockerfile: Dockerfile restart: unless-stopped env_file: - .env depends_on: - mongodb - redis - minio-init command: celery -A app.workers.celery_app.celery_app beat -l info volumes: - app-data:/app/data - comfy-models:/opt/comfyui/models/checkpoints nginx: image: nginx:1.27-alpine restart: unless-stopped depends_on: - api ports: - "80:80" volumes: - ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro volumes: mongo-data: redis-data: minio-data: app-data: comfy-models: comfy-output: