refactor(config): 重构配置文件结构为环境分离模式

将consul和traefik的配置文件按dev和prod环境分离
删除旧的单一配置文件,新增环境特定配置
更新docker-compose.yml以支持环境配置切换
This commit is contained in:
fanfpy 2025-07-06 16:19:32 +08:00
parent dc04f20856
commit 611a26a59a
19 changed files with 162 additions and 4 deletions

View File

@ -0,0 +1,9 @@
{
"acl": {
"default_policy": "deny",
"enabled": true
},
"ui_config": {
"enabled": false
}
}

View File

@ -0,0 +1,18 @@
{
"service": {
"address": "data-service",
"check": {
"http": "http://ari-data-service:8000/api/public/stock_bid_ask_em?symbol=000001",
"interval": "10s",
"timeout": "5s"
},
"id": "data-service-1",
"tags": [
"traefik.enable=true",
"traefik.http.routers.data-service.rule=Host(\"data.aristockai.com\")",
"traefik.http.routers.data-service.entrypoints=web"
],
"name": "data-service",
"port": 8000
}
}

View File

@ -0,0 +1,18 @@
{
"service": {
"address": "emotion-service",
"check": {
"http": "http://emotion-service:8002/health",
"interval": "10s",
"timeout": "5s"
},
"id": "emotion-service-1",
"tags": [
"traefik.enable=true",
"traefik.http.routers.emotion-service.rule=Host(\"emotion.aristockai.com\")",
"traefik.http.routers.emotion-service.entrypoints=web"
],
"name": "emotion-service",
"port": 8002
}
}

View File

@ -0,0 +1,18 @@
{
"service": {
"address": "frontend",
"check": {
"http": "http://frontend:80/",
"interval": "10s",
"timeout": "5s"
},
"id": "frontend-1",
"tags": [
"traefik.enable=true",
"traefik.http.routers.frontend.rule=Host(\"aristockai.com\") || Host(\"www.aristockai.com\")",
"traefik.http.routers.frontend.entrypoints=web"
],
"name": "frontend",
"port": 80
}
}

View File

@ -0,0 +1,18 @@
{
"service": {
"address": "quant-service",
"check": {
"http": "http://quant-service:8001/health",
"interval": "10s",
"timeout": "5s"
},
"id": "quant-service-1",
"tags": [
"traefik.enable=true",
"traefik.http.routers.quant-service.rule=Host(\"quant.aristockai.com\")",
"traefik.http.routers.quant-service.entrypoints=web"
],
"name": "quant-service",
"port": 8001
}
}

View File

@ -0,0 +1,18 @@
{
"service": {
"address": "recommend-service",
"check": {
"http": "http://recommend-service:8003/health",
"interval": "10s",
"timeout": "5s"
},
"id": "recommend-service-1",
"tags": [
"traefik.enable=true",
"traefik.http.routers.recommend-service.rule=Host(\"recommend.aristockai.com\")",
"traefik.http.routers.recommend-service.entrypoints=web"
],
"name": "recommend-service",
"port": 8003
}
}

View File

@ -0,0 +1,18 @@
{
"service": {
"address": "user-service",
"check": {
"http": "http://user-service:8004/health",
"interval": "10s",
"timeout": "5s"
},
"id": "user-service-1",
"tags": [
"traefik.enable=true",
"traefik.http.routers.user-service.rule=Host(\"user.aristockai.com\")",
"traefik.http.routers.user-service.entrypoints=web"
],
"name": "user-service",
"port": 8004
}
}

View File

@ -0,0 +1,20 @@
{
"service": {
"name": "whoami",
"tags": [
"traefik.enable=true",
"traefik.http.routers.whoami.entrypoints=web",
"traefik.http.routers.whoami.rule=Path(\"/whoami\")",
"traefik.http.services.whoami.loadbalancer.server.port=80"
],
"address": "whoami",
"port": 80,
"checks": [
{
"http": "http://whoami:80/",
"interval": "10s",
"timeout": "2s"
}
]
}
}

View File

@ -13,8 +13,8 @@ services:
- "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"
- ./consul/config/${ENV_CONFIG_DIR}:/consul/config
command: "consul agent ${CONSUL_DEV_MODE} -config-dir=/consul/config -client=0.0.0.0"
networks:
- microservice-network
healthcheck:
@ -33,7 +33,7 @@ services:
- "8080:8080" # Traefik dashboard
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik/traefik.yml:/etc/traefik/traefik.yml
- ./traefik/config/${TRAEFIK_CONFIG_DIR}/traefik.yml:/etc/traefik/traefik.yml
networks:
- microservice-network
@ -42,7 +42,7 @@ services:
container_name: ari-data-service
restart: always
ports:
- "8000:8000" # 错误应为服务端口注释而非Traefik dashboard
- "8000:8000"
networks:
- microservice-network
environment:

View File

@ -0,0 +1,21 @@
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
providers:
consulCatalog:
endpoint:
address: "ari-consul:8500"
exposedByDefault: false
api:
dashboard: true
insecure: false