forked from erp-dev/erp
88 lines
1.8 KiB
YAML
88 lines
1.8 KiB
YAML
x-app-image: &app-image
|
|
image: ${FLOWER_IMAGE:-flower-app:latest}
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.prod
|
|
|
|
x-app-runtime: &app-runtime
|
|
env_file:
|
|
- ${APP_ENV_FILE:-.env}
|
|
environment:
|
|
DJANGO_SETTINGS_MODULE: flower.settings
|
|
PYTHONPATH: /app
|
|
CACHE_HOST: redis
|
|
CACHE_PORT: 6379
|
|
CELERY_RESULT_HOST: redis
|
|
CELERY_RESULT_PORT: 6379
|
|
CELERY_BROKER_HOST: rabbitmq
|
|
CELERY_BROKER_PORT: 5672
|
|
restart: unless-stopped
|
|
|
|
services:
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: flower_redis
|
|
command:
|
|
- redis-server
|
|
- --appendonly
|
|
- yes
|
|
volumes:
|
|
- redis_data:/data
|
|
restart: unless-stopped
|
|
|
|
rabbitmq:
|
|
image: rabbitmq:3-management-alpine
|
|
container_name: flower_rabbitmq
|
|
environment:
|
|
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER:-guest}
|
|
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS:-guest}
|
|
volumes:
|
|
- rabbitmq_data:/var/lib/rabbitmq
|
|
restart: unless-stopped
|
|
|
|
web:
|
|
<<: [*app-image, *app-runtime]
|
|
container_name: flower_web
|
|
command:
|
|
- python
|
|
- -m
|
|
- uvicorn
|
|
- flower.asgi:application
|
|
- --host
|
|
- 0.0.0.0
|
|
- --port
|
|
- "8000"
|
|
- --workers
|
|
- "${UVICORN_WORKERS:-1}"
|
|
- --log-config
|
|
- flower/uvicorn_log_config.json
|
|
ports:
|
|
- "${WEB_PORT:-8100}:8000"
|
|
depends_on:
|
|
- redis
|
|
- rabbitmq
|
|
|
|
celery_worker:
|
|
<<: [*app-image, *app-runtime]
|
|
container_name: celery_worker
|
|
command:
|
|
- python
|
|
- -m
|
|
- celery
|
|
- -A
|
|
- flower
|
|
- worker
|
|
- -l
|
|
- info
|
|
- --concurrency=${CELERY_CONCURRENCY:-2}
|
|
- --pool=solo
|
|
volumes:
|
|
- ${BACKUP_DIR:-./data-bak}:/app/data-bak
|
|
depends_on:
|
|
- redis
|
|
- rabbitmq
|
|
|
|
volumes:
|
|
redis_data:
|
|
rabbitmq_data:
|