1
0

docker-compose.yml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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. name: vendure-monorepo
  5. services:
  6. mariadb:
  7. image: 'mariadb:latest'
  8. container_name: mariadb
  9. environment:
  10. MARIADB_DATABASE: vendure-dev
  11. MARIADB_USER: vendure
  12. MARIADB_PASSWORD: password
  13. MARIADB_ROOT_PASSWORD: password
  14. volumes:
  15. - 'mariadb_data:/var/lib/mysql'
  16. ports:
  17. - '3306:3306'
  18. mysql_8:
  19. image: mysql:8.0
  20. container_name: mysql-8
  21. environment:
  22. MYSQL_DATABASE: vendure-dev
  23. MYSQL_USER: vendure
  24. MYSQL_PASSWORD: password
  25. MYSQL_ROOT_PASSWORD: password
  26. volumes:
  27. - 'mysql_data:/var/lib/mysql'
  28. ports:
  29. - '3306:3306'
  30. mysql_5:
  31. image: mysql:5.7
  32. container_name: mysql-5.7
  33. environment:
  34. MYSQL_DATABASE: vendure-dev
  35. MYSQL_USER: vendure
  36. MYSQL_PASSWORD: password
  37. MYSQL_ROOT_PASSWORD: password
  38. volumes:
  39. - 'mysql_data:/var/lib/mysql'
  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:9.1.0
  84. container_name: elasticsearch
  85. environment:
  86. - node.name=es
  87. - cluster.name=es-docker-cluster
  88. - xpack.security.enabled=false
  89. - xpack.security.http.ssl.enabled=false
  90. - xpack.security.transport.ssl.enabled=false
  91. - xpack.license.self_generated.type=basic
  92. - discovery.type=single-node
  93. - bootstrap.memory_lock=true
  94. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  95. mem_limit: 536870912
  96. ulimits:
  97. memlock:
  98. soft: -1
  99. hard: -1
  100. volumes:
  101. - esdata:/usr/share/elasticsearch/data
  102. ports:
  103. - 9200:9200
  104. redis:
  105. image: redis:7.2-alpine
  106. hostname: redis
  107. environment: []
  108. ports:
  109. - '6379:6379'
  110. jaeger:
  111. image: jaegertracing/all-in-one:latest
  112. container_name: jaeger
  113. ports:
  114. - '4318:4318' # OTLP HTTP receiver
  115. - '16686:16686' # Web UI
  116. environment:
  117. - COLLECTOR_OTLP_ENABLED=true
  118. volumes:
  119. - jaeger_data:/badger
  120. loki:
  121. image: grafana/loki:3.4
  122. ports:
  123. - '3100:3100'
  124. networks:
  125. - loki
  126. grafana:
  127. environment:
  128. - GF_PATHS_PROVISIONING=/etc/grafana/provisioning
  129. - GF_AUTH_ANONYMOUS_ENABLED=true
  130. - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
  131. - GF_FEATURE_TOGGLES_ENABLE=alertingSimplifiedRouting,alertingQueryAndExpressionsStepMode
  132. image: grafana/grafana:latest
  133. ports:
  134. - '3200:3000'
  135. volumes:
  136. - grafana-storage:/var/lib/grafana
  137. networks:
  138. - loki
  139. networks:
  140. loki:
  141. driver: bridge
  142. volumes:
  143. postgres_16_data:
  144. driver: local
  145. postgres_12_data:
  146. driver: local
  147. mariadb_data:
  148. driver: local
  149. mysql_data:
  150. driver: local
  151. keycloak_data:
  152. driver: local
  153. esdata:
  154. driver: local
  155. jaeger_data:
  156. driver: local
  157. grafana-storage:
  158. driver: local