x-common-config: &common-config restart: always build: context: ./app dockerfile: Dockerfile volumes: - ./.env:/app/.env networks: - deployml_network services: redis: image: redis restart: always volumes: - ./redis:/data - ./redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] networks: - deployml_network app: <<: *common-config image: ci.svs-tech.pro/ecp-terteh:latest depends_on: - redis worker: <<: *common-config command: poetry run celery -A webapp worker --loglevel=info deploy: resources: limits: cpus: "0.8" memory: ${MEMORY_LIMIT:-2GB} depends_on: - app - redis beat: <<: *common-config command: poetry run celery -A webapp beat --loglevel=info --scheduler django_celery_beat.schedulers:DatabaseScheduler depends_on: - app - redis environment: - DB_NAME=${DB_NAME} - DB_USER=${DB_USER} - DB_PASSWORD=${DB_PASSWORD} - DB_HOST=${DB_HOST} - DB_PORT=${DB_PORT} env_file: - .env volumes: - ./celerybeat-schedule:/app/celerybeat-schedule flower: <<: *common-config command: poetry run celery --broker=redis://redis:6379 -A webapp flower --port=5555 --basic-auth=user:pswd environment: - FLOWER_PERSISTENT=True volumes: - ./flower.db:/app/flower.db depends_on: - app - redis - worker front: build: context: ./front dockerfile: Dockerfile networks: - deployml_network depends_on: - app nginx: image: nginx:latest volumes: - ./nginx.conf:/etc/nginx/nginx.conf ports: - "${WEB_PORT:-80}:80" - "${CELERY_PORT:-8080}:8080" networks: - deployml_network depends_on: - front - flower networks: deployml_network: driver: bridge