typeorm/docker-compose.yml

162 lines
4.1 KiB
YAML

services:
# mysql
mysql-5:
image: "mysql:5.7.44"
container_name: "typeorm-mysql-5"
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "admin"
MYSQL_USER: "test"
MYSQL_PASSWORD: "test"
MYSQL_DATABASE: "test"
mysql-9:
image: "mysql:9.4.0"
container_name: "typeorm-mysql-9"
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "admin"
MYSQL_USER: "test"
MYSQL_PASSWORD: "test"
MYSQL_DATABASE: "test"
# mariadb
mariadb-10:
image: "mariadb:10.6.22-jammy"
container_name: "typeorm-mariadb-10"
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: "admin"
MYSQL_USER: "test"
MYSQL_PASSWORD: "test"
MYSQL_DATABASE: "test"
mariadb-12:
image: "mariadb:12.0.1-rc"
container_name: "typeorm-mariadb-12"
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: "admin"
MYSQL_USER: "test"
MYSQL_PASSWORD: "test"
MYSQL_DATABASE: "test"
# postgres
postgres-14:
# postgis is postgres + PostGIS (only). If you need additional extensions,
# it's probably time to create a purpose-built image.
image: "ghcr.io/naorpeled/typeorm-postgres:pg14-postgis3-pgvectorv0.8.0"
container_name: "typeorm-postgres-14"
ports:
- "5432:5432"
environment:
POSTGRES_USER: "test"
POSTGRES_PASSWORD: "test"
POSTGRES_DB: "test"
# postgres
postgres-17:
# postgis is postgres + PostGIS (only). If you need additional extensions,
# it's probably time to create a purpose-built image.
image: "ghcr.io/naorpeled/typeorm-postgres:pg17-postgis3-pgvectorv0.8.0"
container_name: "typeorm-postgres-17"
ports:
- "5432:5432"
environment:
POSTGRES_USER: "test"
POSTGRES_PASSWORD: "test"
POSTGRES_DB: "test"
# mssql
mssql:
image: "mcr.microsoft.com/mssql/server:2025-latest"
container_name: "typeorm-mssql"
ports:
- "1433:1433"
environment:
SA_PASSWORD: "Admin12345"
ACCEPT_EULA: "Y"
MSSQL_PID: "Express"
# cockroachdb
cockroachdb:
image: "cockroachdb/cockroach:v24.3.8"
container_name: "typeorm-cockroachdb"
command: "start-single-node --insecure --cache=.25 --store=type=mem,size=.25"
ports:
- "26257:26257"
# volumes:
# - cockroach-data:/cockroach/cockroach-data
# oracle
oracle:
image: "container-registry.oracle.com/database/free:23.7.0.0-lite"
container_name: "typeorm-oracle"
ports:
- "1521:1521"
environment:
ORACLE_PWD: "oracle"
ORACLE_SID: "FREE"
volumes:
# - oracle-data:/opt/oracle/oradata
- ./docker/oracle/startup:/opt/oracle/scripts/startup:ro
# google cloud spanner
spanner:
image: alexmesser/spanner-emulator
container_name: "typeorm-spanner"
ports:
- "9010:9010"
- "9020:9020"
# sap hana
# works only on linux, minimum 10GB RAM for docker required
hanaexpress:
image: "saplabs/hanaexpress:2.00.076.00.20240701.1"
container_name: "typeorm-hanaexpress"
hostname: hxe
command:
[
"--passwords-url",
"file:////hana/hxe-config.json",
"--agree-to-sap-license",
]
ulimits:
nofile: 1048576
sysctls:
- kernel.shmall=3145728 # System-wide limit of total shared memory, in 4k pages
- kernel.shmmax=1073741824 # Maximum shared memory segment sizes
- kernel.shmmni=4096 # Maximum number of shared memory segments
- net.ipv4.ip_local_port_range=40000 60999
volumes:
- volume-hana-xe:/hana/mounts
- ./docker/hana/hxe-config.json:/hana/hxe-config.json:ro
ports:
- "39041:39041"
healthcheck:
test: "/hana/shared/HXE/exe/linuxx86_64/hdb/hdbsql -n localhost:39041 -u SYSTEM -p HXEHana1 \"\\s\""
interval: 5s
# mongodb
mongodb:
image: "mongo:8"
container_name: "typeorm-mongodb"
ports:
- "27017:27017"
# redis
# redis:
# image: "redis:3.0.3"
# container_name: "typeorm-redis"
# ports:
# - "6379:6379"
volumes:
# cockroach-data:
# oracle-data:
volume-hana-xe: