version: "3.8"

services:
  integration:
    build:
      context: .
      target: integration
    volumes:
      - .:/var/app
    environment:
      - BASE_QA_GRASS_URL=${BASE_QA_GRASS_URL}
      - BASE_QA_URL=${BASE_QA_URL}
      - QA_DB_DATABASE=%{QA_DB_DATABASE}
      - QA_DB_HOST=${QA_DB_HOST}
      - QA_DB_USER=${QA_DB_USER}
      - QA_DB_PASS=${QA_DB_PASS}
      - QA_GRASS_HOST=${QA_GRASS_HOST}
      - AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}

  unit-lint:
    build:
      context: .
      target: unit-lint
    volumes:
      - .:/var/app

  dev:
    build:
      context: .
      target: dev
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5000/hello/"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s
    ports:
      - "5000:5000"
    volumes:
      - .:/var/app
    env_file:
      - path: .env
        required: false
    environment:
      - Environment=dev

  deploy:
    build:
      context: .
      target: deploy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/hello/"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s
