networks: microservice-network: driver: bridge services: consul: image: consul:1.15 container_name: ari-consul restart: always ports: - "8500:8500" # Consul Web UI - "8600:8600/udp" # DNS服务 volumes: - ./consul/config/${ENV_CONFIG_DIR}:/consul/config command: "consul agent -server -bootstrap-expect=1 ${CONSUL_DEV_MODE} -config-dir=/consul/config -client=0.0.0.0" networks: - microservice-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8500/v1/status/leader"] interval: 10s timeout: 5s retries: 3 traefik: image: traefik:v2.11 container_name: ari-traefik command: - --configFile=/etc/traefik/traefik.yml ports: - "80:80" - "443:443" - "8080:8080" # Traefik dashboard volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik/config/${TRAEFIK_CONFIG_DIR}/traefik.yml:/etc/traefik/traefik.yml - ./traefik/certs:/etc/traefik/certs networks: - microservice-network data-service: image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/data-service:latest container_name: ari-data-service restart: always expose: - "8000" networks: - microservice-network environment: - SERVICE_NAME=data-service quant-service: image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/quant-service:latest container_name: ari-quant-service restart: always depends_on: consul: condition: service_healthy expose: - "8001" networks: - microservice-network environment: - SERVICE_NAME=quant-service emotion-service: image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/emotion-service:latest container_name: ari-emotion-service restart: always depends_on: consul: condition: service_healthy expose: - "8002" networks: - microservice-network environment: - SERVICE_NAME=emotion-service recommend-service: image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/recommend-service:latest container_name: ari-recommend-service restart: always depends_on: consul: condition: service_healthy expose: - "8003" networks: - microservice-network environment: - SERVICE_NAME=recommend-service user-service: image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/user-service:latest container_name: ari-user-service restart: always depends_on: consul: condition: service_healthy expose: - "8004" networks: - microservice-network environment: - SERVICE_NAME=user-service frontend: image: crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com/testrrr/frontend:latest pull_policy: always container_name: ari-frontend restart: always depends_on: - data-service - quant-service - emotion-service - recommend-service - user-service expose: - "80" networks: - microservice-network environment: - SERVICE_NAME=frontend whoami: image: traefik/whoami container_name: whoami networks: - microservice-network