| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- name: zhifu-platform
- services:
- replica-gateway:
- image: haproxy:3.2-alpine@sha256:5961c68bc8a81c5124d0a98ab20f81b74717d6afe596e805977d9cf84c126222
- profiles: ["replica-tests"]
- ports: ["127.0.0.1:18080:8080", "127.0.0.1:18200:8200", "127.0.0.1:18404:8404"]
- volumes:
- - ./ops/haproxy/replicas.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
- prometheus:
- image: prom/prometheus:v3.14.0
- profiles: ["monitoring"]
- command: ["--config.file=/etc/prometheus/prometheus.yml", "--storage.tsdb.retention.time=15d"]
- ports: ["127.0.0.1:19090:9090"]
- volumes:
- - ./ops/prometheus:/etc/prometheus:ro
- - prometheus-data:/prometheus
- restart: unless-stopped
- alertmanager:
- image: prom/alertmanager:v0.34.1
- profiles: ["monitoring"]
- command: ["--config.file=/etc/alertmanager/alertmanager.yml"]
- ports: ["127.0.0.1:19093:9093"]
- volumes:
- - ./ops/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
- - alertmanager-data:/alertmanager
- restart: unless-stopped
- grafana:
- image: grafana/grafana:13.2.2
- profiles: ["monitoring"]
- environment:
- GF_SECURITY_ADMIN_USER: zhifu
- GF_SECURITY_ADMIN_PASSWORD: zhifu_local_only
- GF_AUTH_ANONYMOUS_ENABLED: "true"
- GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer
- GF_ANALYTICS_REPORTING_ENABLED: "false"
- GF_ANALYTICS_CHECK_FOR_UPDATES: "false"
- ports: ["127.0.0.1:13000:3000"]
- volumes:
- - ./ops/grafana/provisioning:/etc/grafana/provisioning:ro
- - ./ops/grafana/dashboards:/var/lib/grafana/dashboards:ro
- - grafana-data:/var/lib/grafana
- restart: unless-stopped
- etcd:
- image: quay.io/coreos/etcd:v3.5.25
- command: ["etcd", "--advertise-client-urls=http://etcd:2379", "--listen-client-urls=http://0.0.0.0:2379", "--data-dir=/etcd"]
- environment:
- ETCD_AUTO_COMPACTION_MODE: revision
- ETCD_AUTO_COMPACTION_RETENTION: "1000"
- ETCD_QUOTA_BACKEND_BYTES: "4294967296"
- ETCD_SNAPSHOT_COUNT: "50000"
- volumes: ["etcd-data:/etcd"]
- restart: unless-stopped
- minio:
- image: quay.io/minio/minio:RELEASE.2024-05-28T17-19-04Z
- command: ["minio", "server", "/data"]
- volumes: ["minio-data:/data"]
- restart: unless-stopped
- milvus:
- image: milvusdb/milvus:v3.0.1
- command: ["milvus", "run", "standalone"]
- environment:
- ETCD_ENDPOINTS: etcd:2379
- MINIO_ADDRESS: minio:9000
- MINIO_REGION: us-east-1
- depends_on: [etcd, minio]
- ports: ["127.0.0.1:19530:19530", "127.0.0.1:19091:9091"]
- volumes: ["milvus-data:/var/lib/milvus"]
- healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
- interval: 10s
- timeout: 5s
- retries: 30
- start_period: 90s
- restart: unless-stopped
- toxiproxy:
- image: ghcr.io/shopify/toxiproxy:2.12.0
- profiles: ["fault-tests"]
- ports: ["127.0.0.1:18474:8474", "127.0.0.1:18100:18100"]
- rabbitmq:
- image: rabbitmq:4.2-management
- environment:
- RABBITMQ_DEFAULT_USER: zhifu
- RABBITMQ_DEFAULT_PASS: zhifu_local_only
- ports: ["127.0.0.1:15672:5672", "127.0.0.1:15673:15672"]
- volumes: ["rabbitmq-data:/var/lib/rabbitmq"]
- healthcheck:
- test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
- interval: 5s
- timeout: 5s
- retries: 30
- restart: unless-stopped
- mysql-oms:
- image: mysql:8.4
- environment:
- MYSQL_DATABASE: oms
- MYSQL_USER: oms
- MYSQL_PASSWORD: oms_local_only
- MYSQL_ROOT_PASSWORD: oms_root_local_only
- ports: ["127.0.0.1:13307:3306"]
- volumes: ["oms-data:/var/lib/mysql"]
- healthcheck:
- test: ["CMD-SHELL", "MYSQL_PWD=$$MYSQL_PASSWORD mysql -h 127.0.0.1 -u $$MYSQL_USER -D $$MYSQL_DATABASE -e 'SELECT 1' > /dev/null"]
- interval: 5s
- timeout: 3s
- retries: 30
- restart: unless-stopped
- mysql:
- image: mysql:8.4
- environment:
- MYSQL_DATABASE: zhifu
- MYSQL_USER: zhifu
- MYSQL_PASSWORD: zhifu_local_only
- MYSQL_ROOT_PASSWORD: root_local_only
- ports: ["127.0.0.1:13306:3306"]
- volumes: ["mysql-data:/var/lib/mysql"]
- healthcheck:
- test: ["CMD-SHELL", "MYSQL_PWD=$$MYSQL_PASSWORD mysql -h 127.0.0.1 -u $$MYSQL_USER -D $$MYSQL_DATABASE -e 'SELECT 1' > /dev/null"]
- interval: 5s
- timeout: 3s
- retries: 30
- restart: unless-stopped
- redis-cache:
- image: redis:8.2
- command: ["redis-server", "--maxmemory", "128mb", "--maxmemory-policy", "allkeys-lru", "--save", ""]
- ports: ["127.0.0.1:16379:6379"]
- healthcheck:
- test: ["CMD", "redis-cli", "ping"]
- interval: 5s
- timeout: 3s
- retries: 10
- restart: unless-stopped
- redis-state:
- image: redis:8.2
- command: ["redis-server", "--appendonly", "yes", "--appendfsync", "everysec", "--maxmemory", "256mb", "--maxmemory-policy", "noeviction"]
- ports: ["127.0.0.1:16380:6379"]
- volumes: ["redis-state-data:/data"]
- healthcheck:
- test: ["CMD", "redis-cli", "ping"]
- interval: 5s
- timeout: 3s
- retries: 10
- restart: unless-stopped
- volumes:
- prometheus-data:
- alertmanager-data:
- grafana-data:
- etcd-data:
- minio-data:
- milvus-data:
- rabbitmq-data:
- oms-data:
- mysql-data:
- redis-state-data:
|