# This composer file is meant to spin up a copy of all supported database vendors and services used in tests.
#
# ONLY FOR TESTING. THIS IS NOT INTENDED FOR PRODUCTION USE.
#
# Credentials:
#   Postgres:
#     User:          postgres
#     Password:      secret
#
#   MySQL:
#     User:          root
#     Password:      secret
#
#   MariaDB:
#     User:          root
#     Password:      secret
#
#   MS SQL:
#     User:          sa
#     Password:      Test@123
#
#   Oracle DB:
#     User:          secretsysuser
#     Password:      secretpassword
#     Role:          SYSDEFAULT
#     SID:           XE
#
#   CockroachDB:
#     User:          root

version: '3.1'
services:
  postgres:
    image: postgis/postgis:13-3.1-alpine
    environment:
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: directus
    ports:
      - 6100:5432

  postgres10:
    image: postgis/postgis:10-3.1-alpine
    environment:
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: directus
    ports:
      - 6101:5432

  mysql:
    image: mysql:8
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: directus
    ports:
      - 6102:3306
    cap_add:
      - SYS_NICE

  maria:
    image: mariadb:10.7
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: directus
    ports:
      - 6103:3306

  mssql:
    image: mcr.microsoft.com/mssql/server:2019-latest
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=Test@123
    ports:
      - 6104:1433

  oracle:
    image: quillbuilduser/oracle-18-xe-micro-sq
    ports:
      - 6105:1521
    environment:
      - OPATCH_JRE_MEMORY_OPTIONS=-Xms128m -Xmx256m -XX:PermSize=16m -XX:MaxPermSize=32m -Xss1m
      - ORACLE_ALLOW_REMOTE=true
    shm_size: '1gb' # more like smh-size ammirite 🥁

  cockroachdb:
    image: cockroachdb/cockroach:latest-v21.1
    command: start-single-node --cluster-name=example-single-node --insecure
    ports:
      - 6106:26257
