# This contains the services required to develop and test Vendure # locally. It includes multiple SQL databases (for testing specific # versions), Elasticsearch, Redis etc. version: '3.7' name: vendure-monorepo services: mariadb: image: 'bitnami/mariadb:latest' container_name: mariadb environment: MARIADB_DATABASE: vendure-dev MARIADB_ROOT_USER: vendure MARIADB_ROOT_PASSWORD: password volumes: - 'mariadb_data:/bitnami' ports: - '3306:3306' mysql_8: image: bitnami/mysql:8.0 container_name: mysql-8 environment: MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password MYSQL_DATABASE: vendure-dev MYSQL_ROOT_USER: vendure MYSQL_ROOT_PASSWORD: password volumes: - 'mysql_data:/bitnami' ports: - '3306:3306' mysql_5: image: bitnami/mysql:5.7 container_name: mysql-5.7 environment: MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password MYSQL_DATABASE: vendure-dev MYSQL_ROOT_USER: vendure MYSQL_ROOT_PASSWORD: password volumes: - 'mysql_data:/bitnami' ports: - '3306:3306' postgres_12: image: postgres:12.3 container_name: postgres_12 environment: POSTGRES_DB: vendure-dev POSTGRES_USER: vendure POSTGRES_PASSWORD: password PGDATA: /var/lib/postgresql/data volumes: - postgres_12_data:/var/lib/postgresql/data ports: - "5432:5432" command: postgres -c shared_preload_libraries=pg_stat_statements -c pg_stat_statements.track=all -c pg_stat_statements.max=100000 -c max_connections=200 postgres_16: image: postgres:16 container_name: postgres_16 environment: POSTGRES_DB: vendure-dev POSTGRES_USER: vendure POSTGRES_PASSWORD: password PGDATA: /var/lib/postgresql/data volumes: - postgres_16_data:/var/lib/postgresql/data ports: - "5432:5432" command: postgres -c shared_preload_libraries=pg_stat_statements -c pg_stat_statements.track=all -c pg_stat_statements.max=100000 -c max_connections=200 # This is the Keycloak service which is used # to test the Keycloak auth strategy keycloak: image: quay.io/keycloak/keycloak ports: - "9000:8080" environment: KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: admin command: - start-dev - --import-realm volumes: - keycloak_data:/opt/keycloak/data elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2 container_name: elasticsearch environment: - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata:/usr/share/elasticsearch/data ports: - 9200:9200 redis: image: bitnami/redis:7.4.1 hostname: redis container_name: redis environment: - ALLOW_EMPTY_PASSWORD=yes ports: - "6379:6379" volumes: postgres_16_data: driver: local postgres_12_data: driver: local mariadb_data: driver: local mysql_data: driver: local keycloak_data: driver: local esdata: driver: local