docker-compose.yml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. # This contains the services required to develop and test Vendure
  2. # locally. It includes multiple SQL databases (for testing specific
  3. # versions), Elasticsearch, Redis etc.
  4. version: '3.7'
  5. name: vendure-monorepo
  6. services:
  7. mariadb:
  8. image: 'bitnami/mariadb:latest'
  9. container_name: mariadb
  10. environment:
  11. MARIADB_DATABASE: vendure-dev
  12. MARIADB_ROOT_USER: vendure
  13. MARIADB_ROOT_PASSWORD: password
  14. volumes:
  15. - 'mariadb_data:/bitnami'
  16. ports:
  17. - '3306:3306'
  18. mysql_8:
  19. image: bitnami/mysql:8.0
  20. container_name: mysql-8
  21. environment:
  22. MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
  23. MYSQL_DATABASE: vendure-dev
  24. MYSQL_ROOT_USER: vendure
  25. MYSQL_ROOT_PASSWORD: password
  26. volumes:
  27. - 'mysql_data:/bitnami'
  28. ports:
  29. - '3306:3306'
  30. mysql_5:
  31. image: bitnami/mysql:5.7
  32. container_name: mysql-5.7
  33. environment:
  34. MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
  35. MYSQL_DATABASE: vendure-dev
  36. MYSQL_ROOT_USER: vendure
  37. MYSQL_ROOT_PASSWORD: password
  38. volumes:
  39. - 'mysql_data:/bitnami'
  40. ports:
  41. - '3306:3306'
  42. postgres_12:
  43. image: postgres:12.3
  44. container_name: postgres_12
  45. environment:
  46. POSTGRES_DB: vendure-dev
  47. POSTGRES_USER: vendure
  48. POSTGRES_PASSWORD: password
  49. PGDATA: /var/lib/postgresql/data
  50. volumes:
  51. - postgres_12_data:/var/lib/postgresql/data
  52. ports:
  53. - '5432:5432'
  54. 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
  55. postgres_16:
  56. image: postgres:16
  57. container_name: postgres_16
  58. environment:
  59. POSTGRES_DB: vendure-dev
  60. POSTGRES_USER: vendure
  61. POSTGRES_PASSWORD: password
  62. PGDATA: /var/lib/postgresql/data
  63. volumes:
  64. - postgres_16_data:/var/lib/postgresql/data
  65. ports:
  66. - '5432:5432'
  67. 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
  68. # This is the Keycloak service which is used
  69. # to test the Keycloak auth strategy
  70. keycloak:
  71. image: quay.io/keycloak/keycloak
  72. ports:
  73. - '9000:8080'
  74. environment:
  75. KEYCLOAK_ADMIN: admin
  76. KEYCLOAK_ADMIN_PASSWORD: admin
  77. command:
  78. - start-dev
  79. - --import-realm
  80. volumes:
  81. - keycloak_data:/opt/keycloak/data
  82. elasticsearch:
  83. image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2
  84. container_name: elasticsearch
  85. environment:
  86. - discovery.type=single-node
  87. - bootstrap.memory_lock=true
  88. - 'ES_JAVA_OPTS=-Xms512m -Xmx512m'
  89. ulimits:
  90. memlock:
  91. soft: -1
  92. hard: -1
  93. volumes:
  94. - esdata:/usr/share/elasticsearch/data
  95. ports:
  96. - 9200:9200
  97. redis:
  98. image: redis:7.2-alpine
  99. hostname: redis
  100. environment:
  101. - ALLOW_EMPTY_PASSWORD=yes
  102. ports:
  103. - '6379:6379'
  104. jaeger:
  105. image: jaegertracing/all-in-one:latest
  106. container_name: jaeger
  107. ports:
  108. - '4318:4318' # OTLP HTTP receiver
  109. - '16686:16686' # Web UI
  110. environment:
  111. - COLLECTOR_OTLP_ENABLED=true
  112. volumes:
  113. - jaeger_data:/badger
  114. loki:
  115. image: grafana/loki:3.4
  116. ports:
  117. - '3100:3100'
  118. networks:
  119. - loki
  120. grafana:
  121. environment:
  122. - GF_PATHS_PROVISIONING=/etc/grafana/provisioning
  123. - GF_AUTH_ANONYMOUS_ENABLED=true
  124. - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
  125. - GF_FEATURE_TOGGLES_ENABLE=alertingSimplifiedRouting,alertingQueryAndExpressionsStepMode
  126. image: grafana/grafana:latest
  127. ports:
  128. - '3200:3000'
  129. volumes:
  130. - grafana-storage:/var/lib/grafana
  131. networks:
  132. - loki
  133. networks:
  134. loki:
  135. driver: bridge
  136. volumes:
  137. postgres_16_data:
  138. driver: local
  139. postgres_12_data:
  140. driver: local
  141. mariadb_data:
  142. driver: local
  143. mysql_data:
  144. driver: local
  145. keycloak_data:
  146. driver: local
  147. esdata:
  148. driver: local
  149. jaeger_data:
  150. driver: local
  151. grafana-storage:
  152. driver: local