version: "3.4"

services:
  app:
    build:
      context: .
      target: deploy
    env_file:
      - .env
    ports:
      - "8000:8000"
    volumes:
      - .:/atlas-um
    depends_on:
      - pgdb
      - redis

  celery_worker:
    build:
      context: .
      target: deploy
    env_file:
      - .env
    volumes:
      - .:/atlas-um
    entrypoint: ["/opt/venv/bin/celery", "-A", "atlas_um.celery_worker.celery", "worker", "--loglevel=info"]
    depends_on:
      - pgdb
      - redis

  celery_beat:
    build:
      context: .
      target: deploy
    env_file:
      - .env
    volumes:
      - .:/atlas-um
    entrypoint: ["/opt/venv/bin/celery", "-A", "atlas_um.celery_worker.celery", "beat", "--loglevel=info"]
    depends_on:
      - pgdb
      - redis

  celery_flower:
    build:
      context: .
      target: deploy
    env_file:
      - .env
    volumes:
      - .:/atlas-um
    ports:
      - "5555:5555"
    entrypoint: [ "/opt/venv/bin/celery", "-A", "atlas_um.celery_worker.celery", "flower"]
    depends_on:
      - pgdb
      - redis

  pgdb:
    image: postgres:11.7
    environment:
      POSTGRES_PASSWORD: bad_db_passwd
      POSTGRES_USER: atlas_um
      POSTGRES_DB: atlas_um
    ports:
      - "5432:5432"
    command: ["postgres", "-c", "log_statement=all", "-c", "fsync=off", "-c", "full_page_writes=off"]

  redis:
    image: redis:alpine
    ports:
      - "6379:6379"

  pg_m:
    build:
      context: .
      dockerfile: ./migrations/Dockerfile
    env_file:
      - .env
    volumes:
      - ./migrations:/sqitch/migrations
    command: ["--", "--verify"]
    depends_on:
      - pgdb
