services:

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

  integration-test:
    build:
      context: .
      target: integration-test
    depends_on:
      {{cookiecutter.app_name | replace("_", "-")}}-deploy:
        condition: service_healthy
    environment:
      - QA_BASE_URL=http://{{cookiecutter.app_name | replace("_", "-")}}-deploy:8080
    volumes:
      - .:/var/app

  {{cookiecutter.app_name | replace("_", "-")}}-dev:
    build:
      context: .
      target: dev
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5000/hello/"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s
    environment:
      - Environment=dev
      - DD_ENV=dev
      - DD_SERVICE=ows-{{cookiecutter.repo_name}}
      - DD_AGENT_HOST=dev-datadog-agent.dev.theorchard.io
      - DD_TRACE_ENABLED=1
      - DD_PROFILING_ENABLED=1
    volumes:
      - .:/var/app

  {{cookiecutter.app_name | replace("_", "-")}}-deploy:
    build:
      context: .
      target: deploy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/hello/"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s
    environment:
      - Environment=dev
      - DD_ENV=dev
      - DD_SERVICE=ows-{{cookiecutter.repo_name}}
      - DD_AGENT_HOST=dev-datadog-agent.dev.theorchard.io
      - DD_TRACE_ENABLED=1
      - DD_PROFILING_ENABLED=1

  uv-lock-upgrade:
    image: ghcr.io/astral-sh/uv:python{{cookiecutter.python_version}}-alpine
    working_dir: /var/app
    command: uv lock --upgrade
    volumes:
      - .:/var/app
