version: '3.7'

x-common-variables: &common-variables
  APP_DEBUG: 1
  APP_ENV: docker
  AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
  AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
  AWS_REGION: eu-west-1
  PROFILE: local  # Production variants don't use docker-compose
  DATABASE_URL: postgresql://postgres:postgres@database:5432/fansifter

services:

  database:
    image: postgres:12.7
    restart: always
    ports:
      - '5432:5432'
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: fansifter
    volumes:
      - dataprocessor-database-data:/var/lib/postgresql/data

  database-migrate:
    build:
      context: .
    command: dbmigrate
    environment:
      <<: *common-variables
    depends_on:
      - database
    volumes:
      - .:/app

  data-processor:
    build:
      context: .
    command: rundev
    ports:
      - "12345:12345"
    healthcheck:
      test: [ "CMD", "curl", "-I", "http://localhost:12345/health" ]
      interval: 15s
      timeout: 10s
      retries: 5
    environment:
      <<: *common-variables
    depends_on:
      - database-migrate
    volumes:
      - .:/app

volumes:
  dataprocessor-database-data:
