version: "3" services: postgres: image: postgres healthcheck: test: psql postgres --command "select 1" -U postgres volumes: - postgres-volume:/var/lib/postgresql/data environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password POSTGRES_DB: postgres pact-broker: image: pactfoundation/pact-broker:latest ports: - "9292:9292" depends_on: - postgres environment: PACT_BROKER_PORT: '9292' PACT_BROKER_DATABASE_URL: "postgres://postgres:password@postgres/postgres" PACT_BROKER_LOG_LEVEL: INFO PACT_BROKER_SQL_LOG_LEVEL: DEBUG # PACT_BROKER_DATABASE_CONNECT_MAX_RETRIES is only needed for docker-compose # because the database takes longer to start up than the puma process # Should not be needed in production. PACT_BROKER_DATABASE_CONNECT_MAX_RETRIES: "5" # The list of allowed base URLs (not setting this makes the app vulnerable to cache poisoning) # This list allows the app to be addressed from the host and from within another docker container correctly # Ngnix config below makes the app accessible on ports 443 and 80, while the Ruby application itself runs on port 9292 PACT_BROKER_BASE_URL: 'https://localhost http://localhost http://localhost:9292 http://pact-broker:9292 https://host.docker.internal http://host.docker.internal http://host.docker.internal:9292' volumes: postgres-volume: