| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- # 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: redis:7.2-alpine
- hostname: redis
- environment:
- - ALLOW_EMPTY_PASSWORD=yes
- ports:
- - '6379:6379'
- jaeger:
- image: jaegertracing/all-in-one:latest
- container_name: jaeger
- ports:
- - '4318:4318' # OTLP HTTP receiver
- - '16686:16686' # Web UI
- environment:
- - COLLECTOR_OTLP_ENABLED=true
- volumes:
- - jaeger_data:/badger
- loki:
- image: grafana/loki:3.4
- ports:
- - '3100:3100'
- networks:
- - loki
- grafana:
- environment:
- - GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- - GF_AUTH_ANONYMOUS_ENABLED=true
- - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- - GF_FEATURE_TOGGLES_ENABLE=alertingSimplifiedRouting,alertingQueryAndExpressionsStepMode
- image: grafana/grafana:latest
- ports:
- - '3200:3000'
- volumes:
- - grafana-storage:/var/lib/grafana
- networks:
- - loki
- networks:
- loki:
- driver: bridge
- 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
- jaeger_data:
- driver: local
- grafana-storage:
- driver: local
|