services:
  pypi:
    build:
      context: .
      target: deploy
    ports:
      - "80:80"
    environment:
      - AWS_ACCESS_KEY_ID=dummy
      - AWS_SECRET_ACCESS_KEY=dummy
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_REGION=us-east-1
      - PPC_DB_URL=redis://redis:6379
      - PPC_STORAGE_BUCKET=dev-pypi # Change to a real value when using an AWS S3 bucket
      - PPC_STORAGE_ENDPOINT_URL=http://localstack:4566 # Remove when using an AWS S3 bucket
      - PPC_PYPI_DEFAULT_WRITE=everyone # Remove when using an AWS S3 bucket as it allows write access to anyone
      - DD_TRACE_ENABLED=false # No Datadog agent is available in the local/CI integration-test environment
    depends_on:
      - redis
      - localstack
  integration-test:
    build:
      context: .
      target: integration-test
    environment:
      - Environment=dev
    depends_on:
      - redis
      - localstack
      - pypi
  redis:
    image: redis:latest
  localstack:
    image: localstack/localstack:4
    ports:
      - "4566:4566"
    environment:
      - SERVICES=s3
      - DEBUG=1
      - DOCKER_HOST=unix:///var/run/docker.sock
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./test/scripts/create_bucket.sh:/etc/localstack/init/ready.d/create_bucket.sh
    healthcheck:
      test: ["CMD", "curl", "-sf", "http://localhost:4566"]
      interval: 1s
      timeout: 60s
