Files
python-api/docker-compose.prod.yml
2026-03-01 07:44:19 +09:00

70 lines
1.4 KiB
YAML

services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:8000"
env_file: .env
depends_on:
- redis
- mosquitto
restart: always
command: uvicorn app.asgi:app --host 0.0.0.0 --port 8000 --workers 4
worker:
build:
context: .
dockerfile: Dockerfile.worker
env_file: .env
depends_on:
- redis
restart: always
command: celery -A app.tasks.celery_app worker --loglevel=warning --concurrency=4
deploy:
replicas: 2
beat:
build:
context: .
dockerfile: Dockerfile.worker
env_file: .env
depends_on:
- redis
restart: always
command: celery -A app.tasks.celery_app beat --loglevel=warning
flower:
build:
context: .
dockerfile: Dockerfile.worker
ports:
- "5555:5555"
env_file: .env
depends_on:
- redis
- worker
restart: always
command: celery -A app.tasks.celery_app flower --port=5555 --basic_auth=${FLOWER_USER:-admin}:${FLOWER_PASSWORD:-changeme}
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: always
mosquitto:
image: eclipse-mosquitto:2
ports:
- "1883:1883"
volumes:
- ./docker/mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf
- mosquitto_data:/mosquitto/data
restart: always
volumes:
redis_data:
mosquitto_data: