mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 17:31:56 +03:00
8b8d7ab96d
This makes a few changes to the test scripts and makefiles in order to make things simpler for the average Apple user. First of all, we change the `wait_for_mysql` function to use "localhost", not "127.0.0.1", as this fixed an issue on my system when attempting to connect to the MySQL server. Secondly, we split the SQL Server test image into two: * The first is the server itself, which now automatically uses `azure-sql-edge` as the image if you are on an aarch64 chip and using the `make` commands. * The second is the initialization script. Because `sqlcmd` is not available in the `azure-sql-edge` image on aarch64, we use a separate container based on `mssql-tools` to initialize the server. The README has been updated. Tested on both macOS/aarch64 (with other changes) and Linux/x86_64. PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5986 GitOrigin-RevId: b16e079861dcbcc66773295c47d715e443b67eea
137 lines
3.8 KiB
YAML
137 lines
3.8 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: postgres:15beta4
|
|
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:
|
|
image: ${MSSQL_IMAGE:-mcr.microsoft.com/mssql/server:2019-latest@sha256:a098c9ff6fbb8e1c9608ad7511fa42dba8d22e0d50b48302761717840ccc26af}
|
|
ports:
|
|
- "65003:1433"
|
|
environment:
|
|
ACCEPT_EULA: "Y"
|
|
SA_PASSWORD: "DockerComposePassword!"
|
|
MSSQL_SA_PASSWORD: "DockerComposePassword!"
|
|
volumes:
|
|
- mssql-data:/var/opt/mssql
|
|
|
|
# Separated from the `sqlserver` container so we can use the `mssql-tools` image to run `sqlcmd`.
|
|
# `sqlcmd` is not available in the `azure-sql-edge` image on arm64, which we use for testing on macOS.
|
|
sqlserver-init:
|
|
image: mcr.microsoft.com/mssql-tools
|
|
command:
|
|
- /init.sh
|
|
environment:
|
|
SERVER_HOST: sqlserver
|
|
volumes:
|
|
- ./docker-compose/sqlserver-init/init.sh:/init.sh
|
|
- ./docker-compose/sqlserver-init/init.sql:/init.sql
|
|
|
|
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.7-28-g19985f9b60
|
|
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:
|