70 lines
1.4 KiB
YAML
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:
|