version: '3.8'

services:
  flask-demo:
    build:
      context: ./flask_demo_service
      dockerfile: Dockerfile
    container_name: pp1532-flask-demo
    ports:
      - "5000:5000"
    env_file:
      - .env
    environment:
      - SERVICE_NAME=${FLASK_SERVICE_NAME:-flask-demo-service}
      - ENVIRONMENT=${ENVIRONMENT:-dev}
      - DD_API_KEY
      - DD_ENV
      - TENANT_UUID
      - TENANT_TYPE
      - AWS_ACCESS_KEY_ID
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
    restart: unless-stopped

  fastapi-demo:
    build:
      context: ./fastapi_demo_service
      dockerfile: Dockerfile
    container_name: pp1532-fastapi-demo
    ports:
      - "8000:8000"
    env_file:
      - .env
    environment:
      - SERVICE_NAME=${FASTAPI_SERVICE_NAME:-fastapi-demo-service}
      - ENVIRONMENT=${ENVIRONMENT:-dev}
      - DD_API_KEY
      - DD_ENV
      - AWS_ACCESS_KEY_ID
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
    restart: unless-stopped

  traffic-gen:
    build:
      context: ./traffic_gen
      dockerfile: Dockerfile
    container_name: pp1532-traffic-gen
    env_file:
      - .env
    environment:
      - FLASK_BASE_URL=http://flask-demo:5000
      - FASTAPI_BASE_URL=http://fastapi-demo:8000
      - LOOP_INTERVAL_SECONDS=${LOOP_INTERVAL_SECONDS:-2}
      - REQUESTS_PER_LOOP=${REQUESTS_PER_LOOP:-5}
      - AUTH0_USERNAME
      - AUTH0_PASSWORD
      - AUTH0_CLIENT_ID
      - AUTH0_CLIENT_SECRET
    depends_on:
      - flask-demo
      - fastapi-demo
    restart: unless-stopped
