mirror of
https://github.com/launchbadge/sqlx.git
synced 2025-12-30 05:11:13 +00:00
* use native-tls API * Add client cert and key to MySQL connector * Add client ssl tests for PostgreSQL * Add client ssl tests for MariaDB and MySQL * Adapt GA tests * Fix RUSTFLAGS to run all tests * Remove containers to free the DB port before running SSL auth tests * Fix CI bad naming * Use docker-compose down to remove also the network * Fix main rebase * Stop trying to stop service using docker-compose, simply use docker cmd * Fix RUSTFLAGS for Postgres * Name the Docker images for MariaDB and MySQL so we can stop them using their name * Add the exception for mysql 5.7 not supporting compatible TLS version with RusTLS * Rebase fixes * Set correctly tls struct (fix merge) * Handle Elliptic Curve variant for private key * Fix tests suite * Fix features in CI * Add tests for Postgres 15 + rebase * Python tests: fix exception for MySQL 5.7 + remove unneeded for loops * CI: run SSL tests only when building with TLS support --------- Co-authored-by: Barry Simons <linuxuser586@gmail.com>
348 lines
11 KiB
YAML
348 lines
11 KiB
YAML
version: "3"
|
|
|
|
services:
|
|
#
|
|
# MySQL 8.x, 5.7.x
|
|
# https://www.mysql.com/support/supportedplatforms/database.html
|
|
#
|
|
|
|
mysql_8:
|
|
# FIXME: 8.0.28 introduced a regression in our type tests: https://github.com/launchbadge/sqlx/issues/1664
|
|
# The MySQL devs agreed that it was a regression and that it will be fixed in 8.0.29
|
|
image: mysql:8.0.27
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MYSQL_ROOT_HOST: '%'
|
|
MYSQL_ROOT_PASSWORD: password
|
|
MYSQL_DATABASE: sqlx
|
|
|
|
mysql_8_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: mysql/Dockerfile
|
|
args:
|
|
IMAGE: mysql:8.0.27
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MYSQL_ROOT_HOST: '%'
|
|
MYSQL_DATABASE: sqlx
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: 1
|
|
|
|
mysql_5_7:
|
|
image: mysql:5.7
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MYSQL_ROOT_HOST: '%'
|
|
MYSQL_ROOT_PASSWORD: password
|
|
MYSQL_DATABASE: sqlx
|
|
|
|
mysql_5_7_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: mysql/Dockerfile
|
|
args:
|
|
IMAGE: mysql:5.7
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MYSQL_ROOT_HOST: '%'
|
|
MYSQL_DATABASE: sqlx
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: 1
|
|
|
|
#
|
|
# MariaDB 10.6, 10.5, 10.4, 10.3
|
|
# https://mariadb.org/about/#maintenance-policy
|
|
#
|
|
|
|
mariadb_10_6:
|
|
image: mariadb:10.6
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: password
|
|
MYSQL_DATABASE: sqlx
|
|
|
|
mariadb_10_6_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: mysql/Dockerfile
|
|
args:
|
|
IMAGE: mariadb:10.6
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MARIADB_DATABASE: sqlx
|
|
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: 1
|
|
|
|
mariadb_10_5:
|
|
image: mariadb:10.5
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: password
|
|
MYSQL_DATABASE: sqlx
|
|
|
|
mariadb_10_5_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: mysql/Dockerfile
|
|
args:
|
|
IMAGE: mariadb:10.5
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MARIADB_DATABASE: sqlx
|
|
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: 1
|
|
|
|
mariadb_10_4:
|
|
image: mariadb:10.4
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: password
|
|
MYSQL_DATABASE: sqlx
|
|
|
|
mariadb_10_4_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: mysql/Dockerfile
|
|
args:
|
|
IMAGE: mariadb:10.4
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MARIADB_DATABASE: sqlx
|
|
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: 1
|
|
|
|
mariadb_10_3:
|
|
image: mariadb:10.3
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: password
|
|
MYSQL_DATABASE: sqlx
|
|
|
|
mariadb_10_3_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: mysql/Dockerfile
|
|
args:
|
|
IMAGE: mariadb:10.3
|
|
volumes:
|
|
- "./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
ports:
|
|
- 3306
|
|
environment:
|
|
MARIADB_DATABASE: sqlx
|
|
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: 1
|
|
|
|
#
|
|
# PostgreSQL 15.x, 14.x, 13.x, 12.x, 11.x
|
|
# https://www.postgresql.org/support/versioning/
|
|
#
|
|
|
|
postgres_15:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 15
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: password
|
|
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
|
|
POSTGRES_INITDB_ARGS: --auth-host=scram-sha-256
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key
|
|
|
|
postgres_15_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 15
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_HOST_AUTH_METHOD: trust
|
|
POSTGRES_INITDB_ARGS: --auth-host=trust
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key -c ssl_ca_file=/var/lib/postgresql/ca.crt -c hba_file=/var/lib/postgresql/pg_hba.conf
|
|
|
|
postgres_14:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 14
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: password
|
|
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
|
|
POSTGRES_INITDB_ARGS: --auth-host=scram-sha-256
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key
|
|
|
|
postgres_14_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 14
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_HOST_AUTH_METHOD: trust
|
|
POSTGRES_INITDB_ARGS: --auth-host=trust
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key -c ssl_ca_file=/var/lib/postgresql/ca.crt -c hba_file=/var/lib/postgresql/pg_hba.conf
|
|
|
|
postgres_13:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 13
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: password
|
|
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
|
|
POSTGRES_INITDB_ARGS: --auth-host=scram-sha-256
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key
|
|
|
|
postgres_13_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 13
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_HOST_AUTH_METHOD: trust
|
|
POSTGRES_INITDB_ARGS: --auth-host=trust
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key -c ssl_ca_file=/var/lib/postgresql/ca.crt -c hba_file=/var/lib/postgresql/pg_hba.conf
|
|
|
|
postgres_12:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 12
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: password
|
|
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
|
|
POSTGRES_INITDB_ARGS: --auth-host=scram-sha-256
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key
|
|
|
|
postgres_12_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 12.3
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_HOST_AUTH_METHOD: trust
|
|
POSTGRES_INITDB_ARGS: --auth-host=trust
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key -c ssl_ca_file=/var/lib/postgresql/ca.crt -c hba_file=/var/lib/postgresql/pg_hba.conf
|
|
|
|
postgres_11:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 11
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: password
|
|
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
|
|
POSTGRES_INITDB_ARGS: --auth-host=scram-sha-256
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key
|
|
|
|
postgres_11_client_ssl:
|
|
build:
|
|
context: .
|
|
dockerfile: postgres/Dockerfile
|
|
args:
|
|
VERSION: 11
|
|
ports:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_DB: sqlx
|
|
POSTGRES_HOST_AUTH_METHOD: trust
|
|
POSTGRES_INITDB_ARGS: --auth-host=trust
|
|
volumes:
|
|
- "./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql"
|
|
command: >
|
|
-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key -c ssl_ca_file=/var/lib/postgresql/ca.crt -c hba_file=/var/lib/postgresql/pg_hba.conf
|