version: '3' volumes: mssql: mssqllatin: mysql: mysql8: mysql4.1: psql96: psql14: psql13: psql15_load_test_data: psql17: mariadb: cockroachdb: oracle18: cassandra: scylladb: bigquery: firebird: mongodb: anywhere: redis: greengage: greengage7: starrocks: surreal: services: anywhere: image: jaschweder/sybase platform: linux/amd64 ports: - 2638:2638 mongodb: image: mongo platform: linux/amd64 environment: MONGO_INITDB_ROOT_USERNAME: beekeeper MONGO_INITDB_ROOT_PASSWORD: example MONGO_INITDB_DATABASE: sakila volumes: - ./dev/docker_mongodb_init:/docker-entrypoint-initdb.d ports: - 27017:27017 oracle18: image: gvenzl/oracle-xe:18 platform: linux/amd64 environment: ORACLE_PASSWORD: example ORACLE_DATABASE: sakila APP_USER: beekeeper APP_USER_PASSWORD: example volumes: - oracle18:/opt/oracle/oradata - ./dev/docker_oracle_init:/docker-entrypoint-initdb.d ports: - 1521:1521 psql15-load-test: image: postgres:15 platform: linux/amd64 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: example POSTGRES_DB: load_test_db volumes: - psql15_load_test_data:/var/lib/postgresql/data - ./dev/docker_psql_load_test_init:/docker-entrypoint-initdb.d ports: - 5435:5432 shm_size: 2gb command: postgres -c shared_preload_libraries=pg_stat_statements -c max_connections=1000 -c shared_buffers=512MB -c work_mem=16MB psql15: image: postgres:15 platform: linux/amd64 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: example POSTGRES_DB: saklia volumes: - psql13:/var/lib/postgresql/data - ./dev/docker_psql_init:/docker-entrypoint-initdb.d ports: - 5434:5432 psql17: image: postgres:17 platform: linux/amd64 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: example POSTGRES_DB: saklia volumes: - psql17:/var/lib/postgresql/data - ./dev/docker_psql_init:/docker-entrypoint-initdb.d ports: - 5437:5432 psql14: image: postgres:14 platform: linux/amd64 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: example POSTGRES_DB: saklia volumes: - psql14:/var/lib/postgresql/data - ./dev/docker_psql_init:/docker-entrypoint-initdb.d ports: - 5436:5432 psql13: image: postgres:13 platform: linux/amd64 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: example POSTGRES_DB: saklia volumes: - psql13:/var/lib/postgresql/data - ./dev/docker_psql_init:/docker-entrypoint-initdb.d ports: - 5433:5432 trino: image: trinodb/trino:latest platform: linux/amd64 ports: - "8090:8080" volumes: - ./dev/docker_trino/catalog:/etc/trino/catalog depends_on: - psql - mysql8 psql: image: postgres:9.6 platform: linux/amd64 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: example POSTGRES_DB: saklia volumes: - psql96:/var/lib/postgresql/data - ./dev/docker_psql_init:/docker-entrypoint-initdb.d ports: - 5432:5432 # Greengage DB 6. https://hub.docker.com/r/greengagedb/ggdb6_ubuntu/tags . Demo listens on 6000. greengage: image: greengagedb/ggdb6_ubuntu:6.29.2 platform: linux/amd64 sysctls: kernel.sem: "500 1024000 200 4096" ports: - 5438:6000 volumes: - greengage:/tmp/greengage_data - ./dev/docker_greengage/init-and-run.sh:/init-and-run.sh:ro command: ["bash", "/init-and-run.sh"] # Greengage DB 7. https://hub.docker.com/r/greengagedb/ggdb7_ubuntu/tags . Demo listens on 7000. greengage7: image: greengagedb/ggdb7_ubuntu:7.4.1 platform: linux/amd64 sysctls: kernel.sem: "500 1024000 200 4096" ports: - 5439:7000 volumes: - greengage7:/tmp/greengage_data - ./dev/docker_greengage/init-and-run.sh:/init-and-run.sh:ro command: ["bash", "/init-and-run.sh"] mariadb: image: mariadb platform: linux/amd64 environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: test ports: - 3307:3306 volumes: - mariadb:/var/lib/mysql - ./dev/docker_mysql_init:/docker-entrypoint-initdb.d mysql8: image: mysql:8.0.21 platform: linux/amd64 command: --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: test ports: - 3308:3306 volumes: - mysql8:/var/lib/mysql - ./dev/docker_mysql_init:/docker-entrypoint-initdb.d mysql: image: mysql:5.7.22 platform: linux/amd64 command: --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: test ports: - 3306:3306 volumes: - mysql:/var/lib/mysql - ./dev/docker_mysql_init:/docker-entrypoint-initdb.d mysql4.1: image: vettadock/mysql-old:4.1 platform: linux/amd64 ports: - 3309:3306 sqlserver: image: "mcr.microsoft.com/mssql/server:2017-latest-ubuntu" platform: linux/amd64 volumes: - mssql:/var/opt/mssql/data - ./dev/docker_sqlserver:/docker_init environment: ACCEPT_EULA: "Y" MSSSQL_PID: "Express" SA_PASSWORD: "Example@1" ports: - 1433:1433 command: sh -c ' chmod +x /docker_init/entrypoint.sh; /docker_init/entrypoint.sh & /opt/mssql/bin/sqlservr;' sqlserverlatin: image: 'mcr.microsoft.com/mssql/server:2017-latest-ubuntu' platform: linux/amd64 volumes: - mssqllatin:/var/opt/mssql/data - ./dev/docker_sqlserver:/docker_init environment: ACCEPT_EULA: "Y" SA_PASSWORD: Example@1" MSSQL_COLLATION: Latin1_General_CS_AS MSSQL_PID: "Express" ports: - 1434:1433 command: sh -c ' chmod +x /docker_init/entrypoint.sh; /docker_init/entrypoint.sh & /opt/mssql/bin/sqlservr;' cockroachdb: image: cockroachdb/cockroach:v22.1.1 platform: linux/amd64 volumes: - cockroachdb:/cockroach/cockroach-data ports: - 26257:26257 command: start-single-node --insecure cassandra: image: cassandra:latest platform: linux/amd64 entrypoint: [ "/docker-entrypoint.initdb.d/entry.sh" ] ports: - 9042:9042 volumes: - cassandra:/var/lib/cassandra - ./dev/docker_cassandra_init:/docker-entrypoint.initdb.d # use keyspace; describe tables; # get all the tables for a specific keyspace # select * from system_schema.keyspaces; # gets all keyspaces # https://www.folkstalk.com/2022/09/get-all-keyspaces-in-cassandra-with-code-examples.html # Create keyspace https://www.tutorialspoint.com/cassandra/cassandra_create_keyspace.htm scylladb: image: scylladb/scylla:2025.1.4 platform: linux/amd64 entrypoint: [ "/docker-entrypoint.initdb.d/entry.sh" ] command: --reactor-backend epoll --smp 1 --memory 1G --overprovisioned 1 --api-address 0.0.0.0 ports: - 9043:9042 # Different host port to run alongside Cassandra volumes: - scylladb:/var/lib/scylla - ./dev/docker_scylladb_init:/docker-entrypoint.initdb.d healthcheck: test: ["CMD-SHELL", "cqlsh -e 'DESCRIBE KEYSPACES'"] interval: 10s timeout: 5s retries: 10 bigquery: image: ghcr.io/goccy/bigquery-emulator:latest platform: linux/amd64 volumes: - ./dev/docker_bigquery:/data - ./dev/docker_bigquery:/docker_init ports: - 9050:9050 - 9060:9060 entrypoint: sh -c 'chmod +x /docker_init/data.sh; /docker_init/data.sh' firebird: image: jacobalberty/firebird:v4.0.1 platform: linux/amd64 volumes: - ./dev/docker_firebird:/docker_init ports: - 3050:3050 environment: - ISC_PASSWORD=masterkey - EnableLegacyClientAuth=true command: sh -c 'chmod +x /docker_init/entrypoint.sh; /docker_init/entrypoint.sh & /usr/local/firebird/docker-entrypoint.sh firebird;' libsql: image: ghcr.io/tursodatabase/libsql-server:latest platform: linux/amd64 ports: - 8081:8080 - 5001:5001 # environment: # - SQLD_NODE=primary # volumes: # - ./dev/docker_libsql:/var/lib/sqld clickhouse: image: clickhouse/clickhouse-server platform: linux/amd64 ports: - 8123:8123 environment: - CLICKHOUSE_USER=username - CLICKHOUSE_PASSWORD=password - CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 redis: image: redis:latest ports: - 6379:6379 volumes: - redis:/data - ./dev/docker_redis:/docker_init command: sh -c 'redis-server & sleep 3 && /docker_init/data.sh && wait' clickhouse25: image: clickhouse/clickhouse-server:25.6.1 ports: - 8124:8123 environment: - CLICKHOUSE_USER=username - CLICKHOUSE_PASSWORD=password - CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 surrealdb: image: surrealdb/surrealdb:latest user: "0:0" command: start --log trace --user root --pass root --allow-all rocksdb:/mydata/surreal.db ports: - 8000:8000 volumes: - surreal:/mydata surrealdb-seed: image: surrealdb/surrealdb:latest depends_on: - surrealdb command: import --endpoint http://surrealdb:8000 --user root --pass root --ns test --db test /seed.surql volumes: - ./dev/docker_surrealdb_init/seed.surql:/seed.surql:ro dynamodb-local: image: amazon/dynamodb-local:latest platform: linux/amd64 ports: - 8001:8000 command: "-jar DynamoDBLocal.jar -sharedDb -inMemory" # StarRocks (FE + BE in one container). MySQL protocol on 9030, FE http on 8030. # The command layers the quick start sample data loader on top of the image's # own ./entrypoint.sh; data is loaded once and persisted in the starrocks volume. # See https://docs.starrocks.io/docs/quick_start/shared-nothing/ starrocks: image: starrocks/allin1-ubuntu ports: - 9030:9030 - 8030:8030 - 8040:8040 volumes: - starrocks:/data/deploy/starrocks - ./dev/docker_starrocks/init.sh:/init.sh:ro command: ["bash", "/init.sh"]