version: '3' volumes: production_postgres_data: {} production_postgres_data_backups: {} production_traefik: {} services: django:{% if cookiecutter.use_celery == 'y' %} &django{% endif %} build: context: . dockerfile: ./compose/production/django/Dockerfile image: {{ cookiecutter.project_slug }}_production_django depends_on: - postgres - redis env_file: - ./.envs/.production/.django - ./.envs/.production/.postgres command: /start postgres: build: context: . dockerfile: ./compose/production/postgres/Dockerfile image: {{ cookiecutter.project_slug }}_production_postgres volumes: - production_postgres_data:/var/lib/postgresql/data:Z - production_postgres_data_backups:/backups:z env_file: - ./.envs/.production/.postgres traefik: build: context: . dockerfile: ./compose/production/traefik/Dockerfile image: {{ cookiecutter.project_slug }}_production_traefik depends_on: - django volumes: - production_traefik:/etc/traefik/acme:z ports: - "0.0.0.0:80:80" - "0.0.0.0:443:443" {%- if cookiecutter.use_celery == 'y' %} - "0.0.0.0:5555:5555" {%- endif %} redis: image: redis:5.0 {%- if cookiecutter.use_celery == 'y' %} celeryworker: <<: *django image: {{ cookiecutter.project_slug }}_production_celeryworker command: /start-celeryworker celerybeat: <<: *django image: {{ cookiecutter.project_slug }}_production_celerybeat command: /start-celerybeat flower: <<: *django image: {{ cookiecutter.project_slug }}_production_flower command: /start-flower {%- endif %} {% if cookiecutter.cloud_provider == 'AWS' %} awscli: build: context: . dockerfile: ./compose/production/aws/Dockerfile env_file: - ./.envs/.production/.django volumes: - production_postgres_data_backups:/backups:z {%- endif %}