AriStockAI/docker-compose.yml
fanfpy dc04f20856 fix(traefik): 修正服务端口注释并更新路由规则为基于域名
将docker-compose.yml中的错误注释修正为服务端口注释
将所有服务的路由规则从PathPrefix改为基于域名的Host规则
移除data-service中不再需要的路径前缀中间件配置
2025-07-06 12:42:38 +08:00

129 lines
2.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: '3.8'
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:/consul/config
command: "consul agent -dev -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"
- "8080:8080" # Traefik dashboard
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik/traefik.yml:/etc/traefik/traefik.yml
networks:
- microservice-network
data-service:
build: ./services/data-service
container_name: ari-data-service
restart: always
ports:
- "8000:8000" # 错误应为服务端口注释而非Traefik dashboard
networks:
- microservice-network
environment:
- SERVICE_NAME=data-service
quant-service:
build: ./services/quant-service
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:
build: ./services/emotion-service
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:
build: ./services/recommend-service
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:
build: ./services/user-service
container_name: ari-user-service
restart: always
depends_on:
consul:
condition: service_healthy
expose:
- "8004"
networks:
- microservice-network
environment:
- SERVICE_NAME=user-service
frontend:
build: ./services/frontend
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