Files

69 lines
1.6 KiB
YAML

version: '3.8'
services:
web:
build:
context: .
dockerfile: Dockerfile
command: gunicorn config.asgi:application -k uvicorn.workers.UvicornWorker --bind
0.0.0.0:8000 --workers 3
restart: unless-stopped
environment:
REDIS_URL: redis://redis:6379/0
CSRF_TRUSTED_ORIGINS: https://${APP_DOMAIN}
volumes:
- erp_media:/app/media
- erp_static:/app/static
networks:
- controlmc_proxy
- internal
labels:
- controlmc.public=true
- traefik.enable=true
- traefik.docker.network=controlmc_proxy
- traefik.http.routers.${ROUTER_NAME}.rule=Host(`${APP_DOMAIN}`)
- traefik.http.routers.${ROUTER_NAME}.entrypoints=websecure
- traefik.http.routers.${ROUTER_NAME}.tls=true
- traefik.http.routers.${ROUTER_NAME}.tls.certresolver=le
- traefik.http.services.${ROUTER_NAME}.loadbalancer.server.port=8000
depends_on:
- redis
mem_limit: 1g
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- erp_redis_data:/data
networks:
- internal
mem_limit: 512m
celery:
build:
context: .
dockerfile: Dockerfile
command: celery -A config worker -l info --concurrency=2
restart: unless-stopped
environment:
REDIS_URL: redis://redis:6379/0
networks:
- internal
depends_on:
- redis
mem_limit: 512m
tax-api:
build:
context: ./tax_api
dockerfile: Dockerfile
restart: unless-stopped
networks:
- controlmc_proxy
- internal
mem_limit: 256m
networks:
controlmc_proxy:
external: true
internal: null
volumes:
erp_media: null
erp_static: null
erp_redis_data: null