version: '3.8' services: video-game-api: container_name: video-game-api ports: - 17020:17020 - 17022:17022 environment: DOCKER: "true" DATABASE_HOST: postgres-db DATABASE_PORT: 5432 DATABASE_USER: postgres DATABASE_PASSWORD: postgres DATABASE_NAME: postgres DATABASE_SSL_MODE: disable REDIS_HOST: redis SERVICE_NAME: video-game-api VENDOR_IGDB_HOST: http://mock_igdb_service:1081 VENDOR_TWITCH_HOST: http://mock_twitch_service:1080 VENDOR_TWITCH_CLIENT_ID: client-id VENDOR_TWITCH_CLIENT_SECRET: client-secret build: context: . dockerfile: Dockerfile depends_on: postgres-db: condition: service_healthy mock_twitch_service: condition: service_started mock_igdb_service: condition: service_started networks: - video-game-api-network integration-test: container_name: integration-test build: context: . dockerfile: Dockerfile.test environment: VIDEO_GAME_API_URL: http://video-game-api:17020 VIDEO_GAME_GRPC_HOST: video-game-api:17022 depends_on: video-game-api: condition: service_started networks: - video-game-api-network postgres-db: container_name: postgres-db image: postgres:16.2-bullseye ports: - 5438:5432 environment: POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres POSTGRES_DB: postgres healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 2s timeout: 10s retries: 20 networks: - video-game-api-network redis: container_name: redis image: redis:7-alpine ports: - "6379:6379" mock_twitch_service: container_name: mock_twitch_service image: mockserver/mockserver ports: - "1080:1080" environment: SERVER_PORT: 1080 MOCKSERVER_INITIALIZATION_JSON_PATH: /config/twitch_expectations.json volumes: - $PWD/config/mock/:/config/ networks: - video-game-api-network mock_igdb_service: container_name: mock_igdb_service image: mockserver/mockserver ports: - "1081:1081" environment: SERVER_PORT: 1081 MOCKSERVER_INITIALIZATION_JSON_PATH: /config/igdb_expectations.json volumes: - $PWD/config/mock/:/config/ networks: - video-game-api-network networks: video-game-api-network: driver: bridge