fix(api-gateway): 使用 deck 同步配置到数据库模式

- 添加 kong-config 容器使用 deck 同步 kong.yml
- 移除 KONG_DECLARATIVE_CONFIG (数据库模式不支持)
- 添加 sync 命令手动同步配置
- 修改 reload 命令使用 deck sync

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Developer 2025-12-03 00:57:16 -08:00
parent a148f26649
commit d2a00213f8
2 changed files with 34 additions and 6 deletions

View File

@ -138,13 +138,22 @@ cmd_health() {
fi fi
} }
# 重载配置 # 重载配置 (触发 deck sync)
cmd_reload() { cmd_reload() {
log_info "重载 Kong 配置..." log_info "重载 Kong 配置..."
docker exec rwa-kong kong reload $COMPOSE_CMD run --rm kong-config
log_success "配置已重载" log_success "配置已重载"
} }
# 同步配置到数据库
cmd_sync() {
log_info "同步 kong.yml 配置到数据库..."
$COMPOSE_CMD run --rm kong-config
log_success "配置同步完成"
echo ""
echo "查看路由: ./deploy.sh routes"
}
# 查看所有路由 # 查看所有路由
cmd_routes() { cmd_routes() {
log_info "Kong 路由列表:" log_info "Kong 路由列表:"
@ -192,7 +201,8 @@ show_help() {
echo " logs 查看日志" echo " logs 查看日志"
echo " status 查看状态" echo " status 查看状态"
echo " health 健康检查" echo " health 健康检查"
echo " reload 重载 Kong 配置" echo " sync 同步 kong.yml 配置到数据库"
echo " reload 重载 Kong 配置 (同 sync)"
echo " routes 查看所有路由" echo " routes 查看所有路由"
echo " services 查看所有服务" echo " services 查看所有服务"
echo " test 测试 API 路由" echo " test 测试 API 路由"
@ -227,6 +237,9 @@ main() {
health) health)
cmd_health cmd_health
;; ;;
sync)
cmd_sync
;;
reload) reload)
cmd_reload cmd_reload
;; ;;

View File

@ -68,14 +68,11 @@ services:
KONG_ADMIN_ERROR_LOG: /dev/stderr KONG_ADMIN_ERROR_LOG: /dev/stderr
KONG_ADMIN_LISTEN: 0.0.0.0:8001 KONG_ADMIN_LISTEN: 0.0.0.0:8001
KONG_ADMIN_GUI_URL: http://localhost:8002 KONG_ADMIN_GUI_URL: http://localhost:8002
KONG_DECLARATIVE_CONFIG: /etc/kong/kong.yml
ports: ports:
- "8000:8000" # Proxy HTTP - "8000:8000" # Proxy HTTP
- "8443:8443" # Proxy HTTPS - "8443:8443" # Proxy HTTPS
- "8001:8001" # Admin API - "8001:8001" # Admin API
- "8002:8002" # Admin GUI - "8002:8002" # Admin GUI
volumes:
- ./kong.yml:/etc/kong/kong.yml:ro
depends_on: depends_on:
kong-db: kong-db:
condition: service_healthy condition: service_healthy
@ -91,6 +88,24 @@ services:
networks: networks:
- rwa-network - rwa-network
# ===========================================================================
# Kong Config Loader - 导入声明式配置到数据库
# ===========================================================================
kong-config:
image: docker.io/kong/deck:latest
container_name: rwa-kong-config
command: >
gateway sync /etc/kong/kong.yml
--kong-addr http://kong:8001
volumes:
- ./kong.yml:/etc/kong/kong.yml:ro
depends_on:
kong:
condition: service_healthy
restart: on-failure
networks:
- rwa-network
# =========================================================================== # ===========================================================================
# Volumes # Volumes
# =========================================================================== # ===========================================================================