graphql-engine/v3/ci.docker-compose.yaml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

99 lines
2.8 KiB
YAML
Raw Normal View History

services:
postgres:
image: postgis/postgis:16-3.4
platform: linux/amd64
command:
- -F # turn fsync off for speed
- -N 1000 # increase max connections from 100 so we can run more HGEs
environment:
POSTGRES_PASSWORD: "password"
volumes:
- type: volume
source: postgres
target: /var/lib/postgresql/data
- type: bind
source: ./crates/engine/tests/db_definition.sql
target: /docker-entrypoint-initdb.d/01-db_definition.sql
read_only: true
- type: bind
source: ./crates/engine/tests/chinook-postgres.sql
target: /docker-entrypoint-initdb.d/02-chinook.sql
read_only: true
healthcheck:
test:
- CMD-SHELL
- psql -U "$${POSTGRES_USER:-postgres}" < /dev/null && sleep 5 && psql -U "$${POSTGRES_USER:-postgres}" < /dev/null
start_period: 5s
interval: 5s
timeout: 10s
retries: 20
postgres_connector:
image: ghcr.io/hasura/ndc-postgres:dev-main
ports:
- 8100:8080
environment:
CONNECTION_URI: "postgresql://postgres:password@postgres"
volumes:
- type: bind
source: ./crates/engine/tests/ndc-postgres-configuration
target: /etc/connector
read_only: true
depends_on:
postgres:
condition: service_healthy
custom_connector:
build:
context: .
target: built
entrypoint:
- ./target/release/custom-connector
ports:
- "8101:8101"
healthcheck:
test: curl -fsS http://localhost:8101/schema
start_period: 5s
interval: 5s
timeout: 10s
retries: 20
source_only:
build:
context: .
target: builder
volumes:
# So that updated files make their way back to the host machine
- ./crates/tracing-util:/app/tracing-util
- ./crates/lang-graphql:/app/lang-graphql
- ./crates/open-dds:/app/open-dds
- ./crates/engine:/app/engine
- ./crates/hasura-authn-core:/app/hasura-authn-core
- ./crates/hasura-authn-webhook:/app/hasura-authn-webhook
- ./coverage:/app/coverage
test_setup:
build:
context: .
target: builder
depends_on:
postgres:
condition: service_healthy
postgres_connector:
condition: service_healthy
custom_connector:
condition: service_healthy
volumes:
# So that updated files make their way back to the host machine
- ./crates/tracing-util:/app/tracing-util
- ./crates/lang-graphql:/app/lang-graphql
- ./crates/open-dds:/app/open-dds
- ./crates/engine:/app/engine
- ./crates/hasura-authn-core:/app/hasura-authn-core
- ./crates/hasura-authn-webhook:/app/hasura-authn-webhook
- ./benchmark.sh:/app/benchmark.sh
- ./coverage:/app/coverage
volumes:
postgres: