version: "3"
services:
  # mysql
  mysql:
    image: "mysql:5.7.37"
    container_name: "typeorm-mysql"
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "admin"
      MYSQL_USER: "test"
      MYSQL_PASSWORD: "test"
      MYSQL_DATABASE: "test"

  # mariadb
  mariadb:
    image: "mariadb:10.10.3"
    container_name: "typeorm-mariadb"
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "admin"
      MYSQL_USER: "test"
      MYSQL_PASSWORD: "test"
      MYSQL_DATABASE: "test"

  # postgres
  postgres:
    # mdillon/postgis is postgres + PostGIS (only). if you need additional
    # extensions, it's probably time to create a purpose-built image with all
    # necessary extensions. sorry, and thanks for adding support for them!
    image: "postgis/postgis:14-3.3"
    container_name: "typeorm-postgres"
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: "test"
      POSTGRES_PASSWORD: "test"
      POSTGRES_DB: "test"

  postgres-12:
    # mdillon/postgis is postgres + PostGIS (only). if you need additional
    # extensions, it's probably time to create a purpose-built image with all
    # necessary extensions. sorry, and thanks for adding support for them!
    image: "postgis/postgis:12-2.5"
    container_name: "typeorm-postgres-12"
    ports:
      - "5532:5432"
    environment:
      POSTGRES_USER: "test"
      POSTGRES_PASSWORD: "test"
      POSTGRES_DB: "test"

  # mssql
  mssql:
    image: "mcr.microsoft.com/mssql/server:2022-latest"
    container_name: "typeorm-mssql"
    ports:
      - "1433:1433"
    environment:
      SA_PASSWORD: "Admin12345"
      ACCEPT_EULA: "Y"

  # cockroachdb
  cockroachdb:
    image: "cockroachdb/cockroach:v22.1.6"
    container_name: "typeorm-cockroachdb"
    command: start-single-node --insecure --cache=.25 --store=type=mem,size=.25
    ports:
      - "26257:26257"

  oracle:
    image: imnotjames/oracle-xe:18
    container_name: "typeorm-oracle"
    ports:
      - "1521:1521"
    networks:
      - default
      - typeorm

  # google cloud spanner
  spanner:
    image: alexmesser/spanner-emulator
    container_name: "typeorm-spanner"
    ports:
      - "9010:9010"
      - "9020:9020"

  # sap hana (works only on linux)
  # hanaexpress:
  #   image: "store/saplabs/hanaexpress:2.00.040.00.20190729.1"
  #   container_name: "typeorm-hanaexpress"
  #   hostname: hxe
  #   command:
  #     [
  #       "--passwords-url",
  #       "file:////hana/hxe-config.json",
  #       "--agree-to-sap-license",
  #     ]
  #   ulimits:
  #     nofile: 1048576
  #   sysctls:
  #     - kernel.shmmax=1073741824
  #     - net.ipv4.ip_local_port_range=40000 60999
  #     - kernel.shmmni=524288
  #     - kernel.shmall=8388608
  #   volumes:
  #     - volume-hana-xe:/hana/mounts
  #     - ./docker/hana/hxe-config.json:/hana/hxe-config.json
  #   ports:
  #     - 39013:39013
  #     - 39017:39017
  #     - 39041-39045:39041-39045
  #     - 1128-1129:1128-1129
  #     - 59013-59014:59013-59014

  # mongodb
  mongodb:
    image: "mongo:5.0.12"
    container_name: "typeorm-mongodb"
    ports:
      - "27017:27017"
  # redis
  # redis:
  #   image: "redis:3.0.3"
  #   container_name: "typeorm-redis"
  #   ports:
  #     - "6379:6379"

#volumes:
#  volume-hana-xe:
#  mysql8_volume:

networks:
  typeorm:
