From d2a00213f8feda9e89b6c2f23198d9c4c69460ca Mon Sep 17 00:00:00 2001 From: Developer Date: Wed, 3 Dec 2025 00:57:16 -0800 Subject: [PATCH] =?UTF-8?q?fix(api-gateway):=20=E4=BD=BF=E7=94=A8=20deck?= =?UTF-8?q?=20=E5=90=8C=E6=AD=A5=E9=85=8D=E7=BD=AE=E5=88=B0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 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 --- backend/api-gateway/deploy.sh | 19 ++++++++++++++++--- backend/api-gateway/docker-compose.yml | 21 ++++++++++++++++++--- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/backend/api-gateway/deploy.sh b/backend/api-gateway/deploy.sh index 7c67fe18..0fc7a0a8 100644 --- a/backend/api-gateway/deploy.sh +++ b/backend/api-gateway/deploy.sh @@ -138,13 +138,22 @@ cmd_health() { fi } -# 重载配置 +# 重载配置 (触发 deck sync) cmd_reload() { log_info "重载 Kong 配置..." - docker exec rwa-kong kong reload + $COMPOSE_CMD run --rm kong-config log_success "配置已重载" } +# 同步配置到数据库 +cmd_sync() { + log_info "同步 kong.yml 配置到数据库..." + $COMPOSE_CMD run --rm kong-config + log_success "配置同步完成" + echo "" + echo "查看路由: ./deploy.sh routes" +} + # 查看所有路由 cmd_routes() { log_info "Kong 路由列表:" @@ -192,7 +201,8 @@ show_help() { echo " logs 查看日志" echo " status 查看状态" echo " health 健康检查" - echo " reload 重载 Kong 配置" + echo " sync 同步 kong.yml 配置到数据库" + echo " reload 重载 Kong 配置 (同 sync)" echo " routes 查看所有路由" echo " services 查看所有服务" echo " test 测试 API 路由" @@ -227,6 +237,9 @@ main() { health) cmd_health ;; + sync) + cmd_sync + ;; reload) cmd_reload ;; diff --git a/backend/api-gateway/docker-compose.yml b/backend/api-gateway/docker-compose.yml index f46c7d69..9ce51de6 100644 --- a/backend/api-gateway/docker-compose.yml +++ b/backend/api-gateway/docker-compose.yml @@ -68,14 +68,11 @@ services: KONG_ADMIN_ERROR_LOG: /dev/stderr KONG_ADMIN_LISTEN: 0.0.0.0:8001 KONG_ADMIN_GUI_URL: http://localhost:8002 - KONG_DECLARATIVE_CONFIG: /etc/kong/kong.yml ports: - "8000:8000" # Proxy HTTP - "8443:8443" # Proxy HTTPS - "8001:8001" # Admin API - "8002:8002" # Admin GUI - volumes: - - ./kong.yml:/etc/kong/kong.yml:ro depends_on: kong-db: condition: service_healthy @@ -91,6 +88,24 @@ services: networks: - 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 # ===========================================================================