AriStockAI/docker-compose.yml
fanfpy caef728619 ci(traefik): 添加docker provider配置并挂载docker.sock
在traefik配置中添加docker provider并设置exposedByDefault为false,同时在docker-compose中挂载docker.sock以支持容器发现
2025-06-30 17:34:02 +08:00

128 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
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
data-service:
build: ./services/data-service
container_name: ari-data-service
restart: always
depends_on:
consul:
condition: service_healthy
expose:
- "8000"
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
expose:
- "80" # 可选Traefik 可以自动发现,不暴露到宿主机