docker-compose.yml 4.6 KB

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