version: '3.8'
services:

  database:
    image: postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: ewah
      PGDATA: /var/lib/postgresql/data
    volumes:
      # persist data on disk
      - ewah_airflow_metadata:/var/lib/postgresql
    ports:
      - 5432:5432

  webserver:
    build:
      context: .
      target: dev_build
    command: webserver
    restart: unless-stopped
    depends_on:
      - database
    volumes:
      # running airflow with docker
      - ./airflow:/opt/airflow
      # running ewah
      - ./ewah:/opt/ewah/ewah
      - ./README.md:/opt/ewah/README.md # yes, this is required for dev install
      - ./setup.cfg:/opt/ewah/setup.cfg
      - ./setup.py:/opt/ewah/setup.py
      - ./VERSION:/opt/ewah/VERSION
    ports:
      - 8084:8080

  scheduler:
    build:
      context: .
      target: dev_build
    command: scheduler
    restart: unless-stopped
    depends_on:
      - database
      - webserver
    volumes:
      # running airflow with docker
      - ./airflow:/opt/airflow
      # running ewah
      - ./ewah:/opt/ewah/ewah
      - ./README.md:/opt/ewah/README.md # yes, this is required for dev install
      - ./setup.cfg:/opt/ewah/setup.cfg
      - ./setup.py:/opt/ewah/setup.py
      - ./VERSION:/opt/ewah/VERSION

networks:
  default:
    name: ewah-net

volumes:
    ewah_airflow_metadata:
        driver: local