compose.yaml 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. name: zhifu-platform
  2. services:
  3. replica-gateway:
  4. image: haproxy:3.2-alpine@sha256:5961c68bc8a81c5124d0a98ab20f81b74717d6afe596e805977d9cf84c126222
  5. profiles: ["replica-tests"]
  6. ports: ["127.0.0.1:18080:8080", "127.0.0.1:18200:8200", "127.0.0.1:18404:8404"]
  7. volumes:
  8. - ./ops/haproxy/replicas.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
  9. prometheus:
  10. image: prom/prometheus:v3.14.0
  11. profiles: ["monitoring"]
  12. command: ["--config.file=/etc/prometheus/prometheus.yml", "--storage.tsdb.retention.time=15d"]
  13. ports: ["127.0.0.1:19090:9090"]
  14. volumes:
  15. - ./ops/prometheus:/etc/prometheus:ro
  16. - prometheus-data:/prometheus
  17. restart: unless-stopped
  18. alertmanager:
  19. image: prom/alertmanager:v0.34.1
  20. profiles: ["monitoring"]
  21. command: ["--config.file=/etc/alertmanager/alertmanager.yml"]
  22. ports: ["127.0.0.1:19093:9093"]
  23. volumes:
  24. - ./ops/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
  25. - alertmanager-data:/alertmanager
  26. restart: unless-stopped
  27. grafana:
  28. image: grafana/grafana:13.2.2
  29. profiles: ["monitoring"]
  30. environment:
  31. GF_SECURITY_ADMIN_USER: zhifu
  32. GF_SECURITY_ADMIN_PASSWORD: zhifu_local_only
  33. GF_AUTH_ANONYMOUS_ENABLED: "true"
  34. GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer
  35. GF_ANALYTICS_REPORTING_ENABLED: "false"
  36. GF_ANALYTICS_CHECK_FOR_UPDATES: "false"
  37. ports: ["127.0.0.1:13000:3000"]
  38. volumes:
  39. - ./ops/grafana/provisioning:/etc/grafana/provisioning:ro
  40. - ./ops/grafana/dashboards:/var/lib/grafana/dashboards:ro
  41. - grafana-data:/var/lib/grafana
  42. restart: unless-stopped
  43. etcd:
  44. image: quay.io/coreos/etcd:v3.5.25
  45. command: ["etcd", "--advertise-client-urls=http://etcd:2379", "--listen-client-urls=http://0.0.0.0:2379", "--data-dir=/etcd"]
  46. environment:
  47. ETCD_AUTO_COMPACTION_MODE: revision
  48. ETCD_AUTO_COMPACTION_RETENTION: "1000"
  49. ETCD_QUOTA_BACKEND_BYTES: "4294967296"
  50. ETCD_SNAPSHOT_COUNT: "50000"
  51. volumes: ["etcd-data:/etcd"]
  52. restart: unless-stopped
  53. minio:
  54. image: quay.io/minio/minio:RELEASE.2024-05-28T17-19-04Z
  55. command: ["minio", "server", "/data"]
  56. volumes: ["minio-data:/data"]
  57. restart: unless-stopped
  58. milvus:
  59. image: milvusdb/milvus:v3.0.1
  60. command: ["milvus", "run", "standalone"]
  61. environment:
  62. ETCD_ENDPOINTS: etcd:2379
  63. MINIO_ADDRESS: minio:9000
  64. MINIO_REGION: us-east-1
  65. depends_on: [etcd, minio]
  66. ports: ["127.0.0.1:19530:19530", "127.0.0.1:19091:9091"]
  67. volumes: ["milvus-data:/var/lib/milvus"]
  68. healthcheck:
  69. test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
  70. interval: 10s
  71. timeout: 5s
  72. retries: 30
  73. start_period: 90s
  74. restart: unless-stopped
  75. toxiproxy:
  76. image: ghcr.io/shopify/toxiproxy:2.12.0
  77. profiles: ["fault-tests"]
  78. ports: ["127.0.0.1:18474:8474", "127.0.0.1:18100:18100"]
  79. rabbitmq:
  80. image: rabbitmq:4.2-management
  81. environment:
  82. RABBITMQ_DEFAULT_USER: zhifu
  83. RABBITMQ_DEFAULT_PASS: zhifu_local_only
  84. ports: ["127.0.0.1:15672:5672", "127.0.0.1:15673:15672"]
  85. volumes: ["rabbitmq-data:/var/lib/rabbitmq"]
  86. healthcheck:
  87. test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
  88. interval: 5s
  89. timeout: 5s
  90. retries: 30
  91. restart: unless-stopped
  92. mysql-oms:
  93. image: mysql:8.4
  94. environment:
  95. MYSQL_DATABASE: oms
  96. MYSQL_USER: oms
  97. MYSQL_PASSWORD: oms_local_only
  98. MYSQL_ROOT_PASSWORD: oms_root_local_only
  99. ports: ["127.0.0.1:13307:3306"]
  100. volumes: ["oms-data:/var/lib/mysql"]
  101. healthcheck:
  102. test: ["CMD-SHELL", "MYSQL_PWD=$$MYSQL_PASSWORD mysql -h 127.0.0.1 -u $$MYSQL_USER -D $$MYSQL_DATABASE -e 'SELECT 1' > /dev/null"]
  103. interval: 5s
  104. timeout: 3s
  105. retries: 30
  106. restart: unless-stopped
  107. mysql:
  108. image: mysql:8.4
  109. environment:
  110. MYSQL_DATABASE: zhifu
  111. MYSQL_USER: zhifu
  112. MYSQL_PASSWORD: zhifu_local_only
  113. MYSQL_ROOT_PASSWORD: root_local_only
  114. ports: ["127.0.0.1:13306:3306"]
  115. volumes: ["mysql-data:/var/lib/mysql"]
  116. healthcheck:
  117. test: ["CMD-SHELL", "MYSQL_PWD=$$MYSQL_PASSWORD mysql -h 127.0.0.1 -u $$MYSQL_USER -D $$MYSQL_DATABASE -e 'SELECT 1' > /dev/null"]
  118. interval: 5s
  119. timeout: 3s
  120. retries: 30
  121. restart: unless-stopped
  122. redis-cache:
  123. image: redis:8.2
  124. command: ["redis-server", "--maxmemory", "128mb", "--maxmemory-policy", "allkeys-lru", "--save", ""]
  125. ports: ["127.0.0.1:16379:6379"]
  126. healthcheck:
  127. test: ["CMD", "redis-cli", "ping"]
  128. interval: 5s
  129. timeout: 3s
  130. retries: 10
  131. restart: unless-stopped
  132. redis-state:
  133. image: redis:8.2
  134. command: ["redis-server", "--appendonly", "yes", "--appendfsync", "everysec", "--maxmemory", "256mb", "--maxmemory-policy", "noeviction"]
  135. ports: ["127.0.0.1:16380:6379"]
  136. volumes: ["redis-state-data:/data"]
  137. healthcheck:
  138. test: ["CMD", "redis-cli", "ping"]
  139. interval: 5s
  140. timeout: 3s
  141. retries: 10
  142. restart: unless-stopped
  143. volumes:
  144. prometheus-data:
  145. alertmanager-data:
  146. grafana-data:
  147. etcd-data:
  148. minio-data:
  149. milvus-data:
  150. rabbitmq-data:
  151. oms-data:
  152. mysql-data:
  153. redis-state-data: