version: '3'

volumes:
  local_postgres_data: {}
  local_postgres_data_backups: {}

services:
  django:{% if cookiecutter.use_celery == 'y' %} &django{% endif %}
    build:
      context: .
      dockerfile: ./compose/local/django/Dockerfile
    image: {{ cookiecutter.project_slug }}_local_django
    depends_on:
      - postgres
      {%- if cookiecutter.use_mailhog == 'y' %}
      - mailhog
      {%- endif %}
    volumes:
      - .:/app
    env_file:
      - ./.envs/.local/.django
      - ./.envs/.local/.postgres
    ports:
      - "8000:8000"
    command: /start

  postgres:
    build:
      context: .
      dockerfile: ./compose/production/postgres/Dockerfile
    image: {{ cookiecutter.project_slug }}_production_postgres
    volumes:
      - local_postgres_data:/var/lib/postgresql/data
      - local_postgres_data_backups:/backups
    env_file:
      - ./.envs/.local/.postgres
  {%- if cookiecutter.use_mailhog == 'y' %}

  mailhog:
    image: mailhog/mailhog:v1.0.0
    ports:
      - "8025:8025"

  {%- endif %}
  {%- if cookiecutter.use_celery == 'y' %}

  redis:
    image: redis:3.2

  celeryworker:
    <<: *django
    image: {{ cookiecutter.project_slug }}_local_celeryworker
    depends_on:
      - redis
      - postgres
      {% if cookiecutter.use_mailhog == 'y' -%}
      - mailhog
      {%- endif %}
    ports: []
    command: /start-celeryworker

  celerybeat:
    <<: *django
    image: {{ cookiecutter.project_slug }}_local_celerybeat
    depends_on:
      - redis
      - postgres
      {% if cookiecutter.use_mailhog == 'y' -%}
      - mailhog
      {%- endif %}
    ports: []
    command: /start-celerybeat

  flower:
    <<: *django
    image: {{ cookiecutter.project_slug }}_local_flower
    ports:
      - "5555:5555"
    command: /start-flower

  {%- endif %}
