mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 09:22:43 +03:00
a24cdd9b49
This makes two changes to the Docker Compose files that we use for local testing: 1. We disable `fsync`. On my machine, this decreases the time taken to create a new database from ~5s to less than 0.1s. The trade-off is that you might lose data, which we don't care about, as this is for testing. 2. We increase the maximum number of connections from the default, 100, to 1000. This allows us to run more tests in parallel without hitting connection limits. These changes won't have any meaningful effect for now; they simply allow us to parallelize tests against PostgreSQL in the future. PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5892 GitOrigin-RevId: 5d0d0ab37fdfbf4c9e20084d3cbedf647f54a04e
125 lines
3.3 KiB
YAML
125 lines
3.3 KiB
YAML
# This file starts up the necessary database services to test
|
|
# graphql-engine.
|
|
#
|
|
# Run the following to get started:
|
|
#
|
|
# docker compose up -d
|
|
#
|
|
# That will start up services in the background. To take them down,
|
|
# you have to run
|
|
#
|
|
# docker compose down
|
|
#
|
|
# If you changed DB init scripts, then you should also run:
|
|
#
|
|
# docker compose down --volumes
|
|
#
|
|
# That'll delete the volumes. Otherwise e.g. PostgreSQL will skip
|
|
# initializing if a DB already exists.
|
|
#
|
|
# If you omit -d, it'll run them all in the foreground, then you can
|
|
# stop them with your usual control-C terminal command.
|
|
#
|
|
# Facts:
|
|
#
|
|
# * The SERVICE PORTS numbering start at 65001, 65002, etc. to avoid
|
|
# bother existing instances of databases.
|
|
#
|
|
# * The login credentials are, where possible, all "hasura" to avoid
|
|
# unnecessary mental overhead.
|
|
|
|
version: "3.6"
|
|
|
|
services:
|
|
mariadb:
|
|
image: mariadb:10.6.4-focal@sha256:c014ba1efc5dbd711d0520c7762d57807f35549de3414eb31e942a420c8a2ed2
|
|
ports:
|
|
- "65001:3306"
|
|
environment:
|
|
MARIADB_USER: "hasura"
|
|
MARIADB_PASSWORD: "hasura"
|
|
MARIADB_DATABASE: "hasura"
|
|
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: "true"
|
|
volumes:
|
|
- mariadb-data:/var/lib/mysql
|
|
|
|
postgres:
|
|
image: cimg/postgres:14.4-postgis@sha256:492a389895568e2f89a03c0c45c19350888611001123514623551a014e83a625
|
|
command:
|
|
- -F # turn fsync off for speed
|
|
- -N 1000 # increase max connections from 100 so we can run more HGEs
|
|
ports:
|
|
- "65002:5432"
|
|
environment:
|
|
POSTGRES_USER: "hasura"
|
|
POSTGRES_PASSWORD: "hasura"
|
|
POSTGRES_DB: "hasura"
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
- ./docker-compose/postgres/init.sh:/docker-entrypoint-initdb.d/init-hasura.sh:ro
|
|
|
|
sqlserver:
|
|
build: ./docker-compose/sqlserver/
|
|
ports:
|
|
- "65003:1433"
|
|
environment:
|
|
ACCEPT_EULA: "Y"
|
|
SA_PASSWORD: "DockerComposePassword!"
|
|
MSSQL_SA_PASSWORD: "DockerComposePassword!"
|
|
volumes:
|
|
- mssql-data:/var/opt/mssql
|
|
|
|
citus:
|
|
image: citusdata/citus:10.1@sha256:7e497e5ca18d7f2ae2a66c1d5d676b548e9221b7e6294adfb03006adad85502c
|
|
ports:
|
|
- "65004:5432"
|
|
environment:
|
|
POSTGRES_USER: "hasura"
|
|
POSTGRES_PASSWORD: "hasura"
|
|
POSTGRES_DB: "hasura"
|
|
volumes:
|
|
- citus-data:/var/lib/postgresql/data
|
|
- ./docker-compose/postgres/init.sh:/docker-entrypoint-initdb.d/init-hasura.sh:ro
|
|
|
|
cockroach:
|
|
image: us-docker.pkg.dev/cockroach-cloud-images/cockroachdb/cockroach:v22.1.6-112-g5e2f4ff465
|
|
command:
|
|
- start-single-node
|
|
- --insecure
|
|
- --accept-sql-without-tls
|
|
ports:
|
|
- "65008:26257"
|
|
environment:
|
|
COCKROACH_USER: "root"
|
|
COCKROACH_DATABASE: "hasura"
|
|
volumes:
|
|
- cockroach-data:/cockroach/cockroach-data
|
|
- ./docker-compose/cockroach/init.sh:/docker-entrypoint-initdb.d/init-hasura.sh:ro
|
|
|
|
dc-reference-agent:
|
|
build:
|
|
context: ./dc-agents
|
|
dockerfile: ./Dockerfile-reference
|
|
ports:
|
|
- "65005:8100"
|
|
|
|
dc-sqlite-agent:
|
|
build:
|
|
context: ./dc-agents
|
|
dockerfile: ./Dockerfile-sqlite
|
|
ports:
|
|
- "65007:8100"
|
|
volumes:
|
|
- "./dc-agents/sqlite/test/db.chinook.sqlite:/db.chinook.sqlite"
|
|
environment:
|
|
METRICS: y
|
|
PRETTY_PRINT_LOGS: y
|
|
LOG_LEVEL: debug
|
|
|
|
volumes:
|
|
citus-data:
|
|
mariadb-data:
|
|
mssql-data:
|
|
postgres-data:
|
|
cockroach-data:
|