From de2e2d04284ec05045c76f784dd6009a6c2adbef Mon Sep 17 00:00:00 2001 From: Developer Date: Wed, 3 Dec 2025 00:38:49 -0800 Subject: [PATCH] =?UTF-8?q?refactor(api-gateway):=20=E5=B0=86=20Kong=20?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=E4=B8=BA=E8=A7=A3=E8=80=A6=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 Kong 从 services/docker-compose.yml 移到 api-gateway/docker-compose.yml - 添加 api-gateway/deploy.sh 一键部署脚本 - 完善 api-gateway/README.md 文档,包含完整架构图和部署流程 - Kong 使用外部网络连接 services,实现解耦部署 架构变更: - services: 只包含微服务,不依赖 Kong - api-gateway: 独立的 Kong 网关,可选部署 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- backend/api-gateway/README.md | 273 ++++++++++++++++++------- backend/api-gateway/deploy.sh | 253 +++++++++++++++++++++++ backend/api-gateway/docker-compose.yml | 107 ++++++++++ backend/services/docker-compose.yml | 79 ------- 4 files changed, 555 insertions(+), 157 deletions(-) create mode 100644 backend/api-gateway/deploy.sh create mode 100644 backend/api-gateway/docker-compose.yml diff --git a/backend/api-gateway/README.md b/backend/api-gateway/README.md index 741c53e6..684dee54 100644 --- a/backend/api-gateway/README.md +++ b/backend/api-gateway/README.md @@ -2,133 +2,231 @@ RWADurian 项目的 API 网关,基于 Kong 实现。 -## 架构 +## 架构概览 ``` -用户请求 - ↓ -Nginx (SSL/负载均衡) - ↓ rwaapi.szaiai.com:443 -Kong API Gateway - ↓ :8000 -各微服务 - ├── identity-service :3000 - ├── wallet-service :3001 - ├── backup-service :3002 - ├── planting-service :3003 - ├── referral-service :3004 - ├── reward-service :3005 - ├── mpc-service :3006 - ├── leaderboard-service:3007 - ├── reporting-service :3008 - ├── authorization-service:3009 - ├── admin-service :3010 - └── presence-service :3011 + ┌─────────────────────────────────────┐ + │ RWA Backend │ + └─────────────────────────────────────┘ + │ + ┌───────────────────────────────┼───────────────────────────────┐ + │ │ │ + ▼ ▼ ▼ + ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ + │ rwaadmin.szaiai │ │ rwaapi.szaiai │ │ update.szaiai │ + │ (Admin Web) │ │ (API Gateway) │ │ (Mobile Upgrade) │ + │ :443 │ │ :443 │ │ :443 │ + └─────────┬─────────┘ └─────────┬─────────┘ └─────────┬─────────┘ + │ │ │ + │ Nginx │ Nginx │ Nginx + │ │ │ + ▼ ▼ ▼ + ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ + │ Admin Web │ │ Kong Gateway │ │ Mobile Upgrade │ + │ (Next.js) │ │ │ │ (Next.js) │ + │ :3000 │ │ :8000 │ │ :3020 │ + └───────────────────┘ └─────────┬─────────┘ └───────────────────┘ + │ + ┌─────────────────────────────┼─────────────────────────────┐ + │ │ │ + ▼ ▼ ▼ + ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ + │ identity-service │ │ admin-service │ │ presence-service │ + │ :3000 │ │ :3010 │ │ :3011 │ + └───────────────────┘ └───────────────────┘ └───────────────────┘ + │ │ │ + └───────────────────────────┼───────────────────────────┘ + │ + ┌─────────────┴─────────────┐ + │ Infrastructure │ + │ PostgreSQL / Redis / │ + │ Kafka / Zookeeper │ + └───────────────────────────┘ ``` -## 文件结构 +## 目录结构 ``` api-gateway/ -├── kong.yml # Kong 声明式配置 -├── README.md # 本文档 +├── docker-compose.yml # Kong Docker Compose 配置 +├── deploy.sh # 一键部署脚本 +├── kong.yml # Kong 声明式路由配置 +├── README.md # 本文档 └── nginx/ - ├── rwaapi.szaiai.com.conf # Nginx 配置 - └── install.sh # 一键安装脚本 + ├── rwaapi.szaiai.com.conf # Nginx 配置 (SSL) + └── install.sh # Nginx 安装脚本 ``` -## API 路由 +## 快速开始 -| 路径 | 服务 | 说明 | -|------|------|------| -| `/api/v1/auth/*` | identity-service | 认证相关 | -| `/api/v1/users/*` | identity-service | 用户管理 | -| `/api/v1/wallets/*` | wallet-service | 钱包管理 | -| `/api/v1/backups/*` | backup-service | 备份服务 | -| `/api/v1/plantings/*` | planting-service | 种植管理 | -| `/api/v1/trees/*` | planting-service | 树木管理 | -| `/api/v1/referrals/*` | referral-service | 推荐系统 | -| `/api/v1/rewards/*` | reward-service | 奖励系统 | -| `/api/v1/mpc/*` | mpc-service | 多方计算 | -| `/api/v1/leaderboard/*` | leaderboard-service | 排行榜 | -| `/api/v1/reports/*` | reporting-service | 报表统计 | -| `/api/v1/statistics/*` | reporting-service | 数据统计 | -| `/api/v1/authorization/*` | authorization-service | 授权管理 | -| `/api/v1/permissions/*` | authorization-service | 权限管理 | -| `/api/v1/roles/*` | authorization-service | 角色管理 | -| `/api/v1/versions/*` | admin-service | 版本管理 | -| `/api/v1/admin/*` | admin-service | 后台管理 | -| `/api/v1/presence/*` | presence-service | 在线状态 | - -## 部署 - -### 1. 启动 Kong (包含在 services 的 docker-compose.yml 中) +### 1. 先启动后端微服务 ```bash cd backend/services ./deploy.sh up ``` -### 2. 配置 Nginx + SSL +### 2. 启动 Kong API Gateway ```bash -cd backend/api-gateway/nginx +cd backend/api-gateway +chmod +x deploy.sh +./deploy.sh up +``` + +### 3. 配置 Nginx + SSL (生产环境) + +```bash +cd nginx sudo chmod +x install.sh sudo ./install.sh ``` -### 3. 验证 +## 部署脚本命令 ```bash -# 检查 Kong 状态 -curl http://localhost:8001/status +./deploy.sh up # 启动 Kong 网关 +./deploy.sh down # 停止 Kong 网关 +./deploy.sh restart # 重启 Kong 网关 +./deploy.sh logs # 查看日志 +./deploy.sh status # 查看状态 +./deploy.sh health # 健康检查 +./deploy.sh reload # 重载 Kong 配置 +./deploy.sh routes # 查看所有路由 +./deploy.sh services # 查看所有服务 +./deploy.sh test # 测试 API 路由 +./deploy.sh clean # 清理容器和数据 +``` -# 测试 API 路由 +## API 路由表 + +| 路径 | 目标服务 | 端口 | 说明 | +|------|----------|------|------| +| `/api/v1/auth/*` | identity-service | 3000 | 认证登录 | +| `/api/v1/users/*` | identity-service | 3000 | 用户管理 | +| `/api/v1/wallets/*` | wallet-service | 3001 | 钱包管理 | +| `/api/v1/backups/*` | backup-service | 3002 | 备份服务 | +| `/api/v1/plantings/*` | planting-service | 3003 | 种植管理 | +| `/api/v1/trees/*` | planting-service | 3003 | 树木管理 | +| `/api/v1/referrals/*` | referral-service | 3004 | 推荐系统 | +| `/api/v1/rewards/*` | reward-service | 3005 | 奖励系统 | +| `/api/v1/mpc/*` | mpc-service | 3006 | 多方计算 | +| `/api/v1/leaderboard/*` | leaderboard-service | 3007 | 排行榜 | +| `/api/v1/reports/*` | reporting-service | 3008 | 报表 | +| `/api/v1/statistics/*` | reporting-service | 3008 | 统计 | +| `/api/v1/authorization/*` | authorization-service | 3009 | 授权 | +| `/api/v1/permissions/*` | authorization-service | 3009 | 权限 | +| `/api/v1/roles/*` | authorization-service | 3009 | 角色 | +| `/api/v1/versions/*` | admin-service | 3010 | 版本管理 | +| `/api/v1/admin/*` | admin-service | 3010 | 后台管理 | +| `/api/v1/presence/*` | presence-service | 3011 | 在线状态 | + +## Kong 端口说明 + +| 端口 | 说明 | +|------|------| +| 8000 | Proxy HTTP - API 请求入口 | +| 8443 | Proxy HTTPS - API 请求入口 (SSL) | +| 8001 | Admin API - 管理接口 | +| 8002 | Admin GUI - 管理界面 | + +## 全局插件 + +| 插件 | 说明 | +|------|------| +| cors | 跨域支持,允许前端访问 | +| rate-limiting | 请求限流 (100/分钟, 5000/小时) | +| file-log | 请求日志记录 | +| request-size-limiting | 请求大小限制 (50MB) | + +## 生产环境部署 + +### 完整部署流程 + +```bash +# 1. 克隆代码到服务器 +git clone /opt/rwadurian +cd /opt/rwadurian + +# 2. 配置环境变量 +cp backend/services/.env.example backend/services/.env +# 编辑 .env 文件,设置数据库密码、JWT 密钥等 + +# 3. 启动基础设施和微服务 +cd backend/services +./deploy.sh up + +# 4. 启动 Kong API Gateway +cd ../api-gateway +./deploy.sh up + +# 5. 配置 Nginx + SSL +cd nginx +sudo ./install.sh + +# 6. 验证 curl https://rwaapi.szaiai.com/api/v1/versions ``` -## Kong 管理 +### 服务依赖关系 -### 查看配置 +``` +1. Infrastructure (PostgreSQL, Redis, Kafka) + ↓ +2. Application Services (identity, wallet, admin, etc.) + ↓ +3. Kong API Gateway + ↓ +4. Nginx (SSL 终结) +``` + +## 管理命令 + +### 查看 Kong 状态 ```bash -# 查看所有服务 -curl http://localhost:8001/services +# 查看运行中的容器 +docker ps | grep kong + +# 查看 Kong 健康状态 +curl http://localhost:8001/status # 查看所有路由 curl http://localhost:8001/routes +# 查看所有服务 +curl http://localhost:8001/services + # 查看所有插件 curl http://localhost:8001/plugins ``` -### 重新加载配置 +### 重载配置 ```bash -# 进入 Kong 容器 -docker exec -it rwa-kong sh +# 编辑 kong.yml 后重载 +docker exec rwa-kong kong reload -# 重载配置 -kong reload +# 或使用部署脚本 +./deploy.sh reload ``` -## 插件 +### 查看日志 -已启用的全局插件: +```bash +# Kong 日志 +docker logs -f rwa-kong -| 插件 | 功能 | -|------|------| -| cors | 跨域支持 | -| rate-limiting | 请求限流 (100/分钟, 5000/小时) | -| file-log | 请求日志 | -| request-size-limiting | 请求大小限制 (50MB) | +# 或使用部署脚本 +./deploy.sh logs +``` ## 故障排除 -### 1. Kong 无法连接数据库 +### 1. Kong 无法启动 ```bash -# 检查 kong-db 状态 +# 检查数据库连接 docker logs rwa-kong-db # 手动运行迁移 @@ -139,7 +237,7 @@ docker exec -it rwa-kong kong migrations bootstrap ```bash # 检查 kong.yml 语法 -docker exec -it rwa-kong kong config parse /etc/kong/kong.yml +docker exec rwa-kong kong config parse /etc/kong/kong.yml # 重启 Kong docker restart rwa-kong @@ -147,5 +245,24 @@ docker restart rwa-kong ### 3. 502 Bad Gateway -- 检查目标服务是否运行: `docker ps` -- 检查服务网络连通性: `docker exec rwa-kong curl http://admin-service:3010/api/v1/health` +```bash +# 检查目标服务是否运行 +docker ps | grep rwa- + +# 检查网络连通性 +docker exec rwa-kong curl http://admin-service:3010/api/v1/health + +# 检查 Kong 日志 +docker logs rwa-kong --tail 100 +``` + +### 4. 跨域问题 + +检查 kong.yml 中的 cors 插件配置,确保 origins 包含前端域名。 + +## 安全建议 + +1. **生产环境**: 不要暴露 8001 (Admin API) 到公网 +2. **HTTPS**: 使用 Nginx 做 SSL 终结 +3. **限流**: 根据实际流量调整 rate-limiting 配置 +4. **日志**: 定期清理 /tmp/kong-access.log diff --git a/backend/api-gateway/deploy.sh b/backend/api-gateway/deploy.sh new file mode 100644 index 00000000..3fb75fb7 --- /dev/null +++ b/backend/api-gateway/deploy.sh @@ -0,0 +1,253 @@ +#!/bin/bash + +# ============================================================================= +# RWADurian API Gateway (Kong) - 部署脚本 +# ============================================================================= +# Usage: +# ./deploy.sh up # 启动网关 +# ./deploy.sh down # 停止网关 +# ./deploy.sh restart # 重启网关 +# ./deploy.sh logs # 查看日志 +# ./deploy.sh status # 查看状态 +# ./deploy.sh health # 健康检查 +# ./deploy.sh reload # 重载 Kong 配置 +# ./deploy.sh routes # 查看所有路由 +# ============================================================================= + +set -e + +# 颜色定义 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' + +# 项目信息 +PROJECT_NAME="rwa-api-gateway" +KONG_ADMIN_URL="http://localhost:8001" +KONG_PROXY_URL="http://localhost:8000" + +# 切换到脚本所在目录 +cd "$(dirname "$0")" + +# 日志函数 +log_info() { echo -e "${BLUE}[INFO]${NC} $1"; } +log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; } +log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; } +log_error() { echo -e "${RED}[ERROR]${NC} $1"; } + +# 检查 Docker +check_docker() { + if ! command -v docker &> /dev/null; then + log_error "Docker 未安装" + exit 1 + fi + if ! docker info &> /dev/null; then + log_error "Docker 服务未运行" + exit 1 + fi +} + +# 检查 Docker Compose +check_docker_compose() { + if docker compose version &> /dev/null; then + COMPOSE_CMD="docker compose" + elif command -v docker-compose &> /dev/null; then + COMPOSE_CMD="docker-compose" + else + log_error "Docker Compose 未安装" + exit 1 + fi +} + +# 检查 services 网络是否存在 +check_network() { + if ! docker network inspect services_rwa-network &> /dev/null; then + log_warn "services_rwa-network 网络不存在" + log_info "请先启动后端服务: cd ../services && ./deploy.sh up" + exit 1 + fi +} + +# 启动服务 +cmd_up() { + log_info "启动 Kong API Gateway..." + check_network + $COMPOSE_CMD up -d + + log_info "等待 Kong 启动..." + sleep 10 + + # 检查状态 + if docker ps | grep -q rwa-kong; then + log_success "Kong API Gateway 启动成功!" + echo "" + echo "服务地址:" + echo " Proxy: http://localhost:8000" + echo " Admin API: http://localhost:8001" + echo " Admin GUI: http://localhost:8002" + echo "" + echo "查看路由: ./deploy.sh routes" + else + log_error "Kong 启动失败,查看日志: ./deploy.sh logs" + exit 1 + fi +} + +# 停止服务 +cmd_down() { + log_info "停止 Kong API Gateway..." + $COMPOSE_CMD down + log_success "Kong 已停止" +} + +# 重启服务 +cmd_restart() { + log_info "重启 Kong API Gateway..." + $COMPOSE_CMD restart + log_success "Kong 已重启" +} + +# 查看日志 +cmd_logs() { + $COMPOSE_CMD logs -f +} + +# 查看状态 +cmd_status() { + log_info "Kong API Gateway 状态:" + $COMPOSE_CMD ps +} + +# 健康检查 +cmd_health() { + log_info "Kong 健康检查..." + + # 检查 Kong 状态 + response=$(curl -s $KONG_ADMIN_URL/status 2>/dev/null) + if [ $? -eq 0 ]; then + log_success "Kong Admin API 正常" + echo "$response" | python3 -m json.tool 2>/dev/null || echo "$response" + else + log_error "Kong Admin API 不可用" + exit 1 + fi +} + +# 重载配置 +cmd_reload() { + log_info "重载 Kong 配置..." + docker exec rwa-kong kong reload + log_success "配置已重载" +} + +# 查看所有路由 +cmd_routes() { + log_info "Kong 路由列表:" + curl -s $KONG_ADMIN_URL/routes | python3 -m json.tool 2>/dev/null || curl -s $KONG_ADMIN_URL/routes +} + +# 查看所有服务 +cmd_services() { + log_info "Kong 服务列表:" + curl -s $KONG_ADMIN_URL/services | python3 -m json.tool 2>/dev/null || curl -s $KONG_ADMIN_URL/services +} + +# 测试 API +cmd_test() { + log_info "测试 API 路由..." + + echo "" + echo "测试 /api/v1/versions (admin-service):" + curl -s -o /dev/null -w " HTTP Status: %{http_code}\n" $KONG_PROXY_URL/api/v1/versions + + echo "" + echo "测试 /api/v1/auth (identity-service):" + curl -s -o /dev/null -w " HTTP Status: %{http_code}\n" $KONG_PROXY_URL/api/v1/auth +} + +# 清理 +cmd_clean() { + log_info "清理 Kong 容器和数据..." + $COMPOSE_CMD down -v --remove-orphans + docker image prune -f + log_success "清理完成" +} + +# 显示帮助 +show_help() { + echo "" + echo "RWADurian API Gateway (Kong) 部署脚本" + echo "" + echo "用法: ./deploy.sh [命令]" + echo "" + echo "命令:" + echo " up 启动 Kong 网关" + echo " down 停止 Kong 网关" + echo " restart 重启 Kong 网关" + echo " logs 查看日志" + echo " status 查看状态" + echo " health 健康检查" + echo " reload 重载 Kong 配置" + echo " routes 查看所有路由" + echo " services 查看所有服务" + echo " test 测试 API 路由" + echo " clean 清理容器和数据" + echo " help 显示帮助" + echo "" + echo "注意: 需要先启动 backend/services 才能启动 Kong" + echo "" +} + +# 主函数 +main() { + check_docker + check_docker_compose + + case "${1:-help}" in + up) + cmd_up + ;; + down) + cmd_down + ;; + restart) + cmd_restart + ;; + logs) + cmd_logs + ;; + status) + cmd_status + ;; + health) + cmd_health + ;; + reload) + cmd_reload + ;; + routes) + cmd_routes + ;; + services) + cmd_services + ;; + test) + cmd_test + ;; + clean) + cmd_clean + ;; + help|--help|-h) + show_help + ;; + *) + log_error "未知命令: $1" + show_help + exit 1 + ;; + esac +} + +main "$@" diff --git a/backend/api-gateway/docker-compose.yml b/backend/api-gateway/docker-compose.yml new file mode 100644 index 00000000..a32e554b --- /dev/null +++ b/backend/api-gateway/docker-compose.yml @@ -0,0 +1,107 @@ +# ============================================================================= +# Kong API Gateway - Docker Compose +# ============================================================================= +# Usage: +# ./deploy.sh up # 启动 Kong 网关 +# ./deploy.sh down # 停止 Kong 网关 +# ./deploy.sh logs # 查看日志 +# ./deploy.sh status # 查看状态 +# ============================================================================= + +services: + # =========================================================================== + # Kong Database + # =========================================================================== + kong-db: + image: postgres:16-alpine + container_name: rwa-kong-db + environment: + POSTGRES_USER: kong + POSTGRES_PASSWORD: ${KONG_PG_PASSWORD:-kong_password} + POSTGRES_DB: kong + volumes: + - kong_db_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U kong"] + interval: 5s + timeout: 5s + retries: 10 + restart: unless-stopped + networks: + - rwa-network + + # =========================================================================== + # Kong Migrations (只运行一次) + # =========================================================================== + kong-migrations: + image: kong:3.5-alpine + container_name: rwa-kong-migrations + command: kong migrations bootstrap + environment: + KONG_DATABASE: postgres + KONG_PG_HOST: kong-db + KONG_PG_USER: kong + KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong_password} + KONG_PG_DATABASE: kong + depends_on: + kong-db: + condition: service_healthy + restart: on-failure + networks: + - rwa-network + + # =========================================================================== + # Kong API Gateway + # =========================================================================== + kong: + image: kong:3.5-alpine + container_name: rwa-kong + environment: + KONG_DATABASE: postgres + KONG_PG_HOST: kong-db + KONG_PG_USER: kong + KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong_password} + KONG_PG_DATABASE: kong + KONG_PROXY_ACCESS_LOG: /dev/stdout + KONG_ADMIN_ACCESS_LOG: /dev/stdout + KONG_PROXY_ERROR_LOG: /dev/stderr + 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 + kong-migrations: + condition: service_completed_successfully + healthcheck: + test: ["CMD", "kong", "health"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 30s + restart: unless-stopped + networks: + - rwa-network + +# =========================================================================== +# Volumes +# =========================================================================== +volumes: + kong_db_data: + driver: local + +# =========================================================================== +# Networks - 使用外部网络连接到 services +# =========================================================================== +networks: + rwa-network: + external: true + name: services_rwa-network diff --git a/backend/services/docker-compose.yml b/backend/services/docker-compose.yml index 77c54f45..7a50b79a 100644 --- a/backend/services/docker-compose.yml +++ b/backend/services/docker-compose.yml @@ -93,83 +93,6 @@ services: networks: - rwa-network - # =========================================================================== - # API Gateway - Kong - # =========================================================================== - - kong-db: - image: postgres:16-alpine - container_name: rwa-kong-db - environment: - POSTGRES_USER: kong - POSTGRES_PASSWORD: ${KONG_PG_PASSWORD:-kong_password} - POSTGRES_DB: kong - volumes: - - kong_db_data:/var/lib/postgresql/data - healthcheck: - test: ["CMD-SHELL", "pg_isready -U kong"] - interval: 5s - timeout: 5s - retries: 10 - restart: unless-stopped - networks: - - rwa-network - - kong-migrations: - image: kong:3.5-alpine - container_name: rwa-kong-migrations - command: kong migrations bootstrap - environment: - KONG_DATABASE: postgres - KONG_PG_HOST: kong-db - KONG_PG_USER: kong - KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong_password} - KONG_PG_DATABASE: kong - depends_on: - kong-db: - condition: service_healthy - restart: on-failure - networks: - - rwa-network - - kong: - image: kong:3.5-alpine - container_name: rwa-kong - environment: - KONG_DATABASE: postgres - KONG_PG_HOST: kong-db - KONG_PG_USER: kong - KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong_password} - KONG_PG_DATABASE: kong - KONG_PROXY_ACCESS_LOG: /dev/stdout - KONG_ADMIN_ACCESS_LOG: /dev/stdout - KONG_PROXY_ERROR_LOG: /dev/stderr - 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: - - ../api-gateway/kong.yml:/etc/kong/kong.yml:ro - depends_on: - kong-db: - condition: service_healthy - kong-migrations: - condition: service_completed_successfully - healthcheck: - test: ["CMD", "kong", "health"] - interval: 30s - timeout: 10s - retries: 5 - start_period: 30s - restart: unless-stopped - networks: - - rwa-network - # =========================================================================== # Application Services # =========================================================================== @@ -619,8 +542,6 @@ volumes: driver: local redis_data: driver: local - kong_db_data: - driver: local # =========================================================================== # Networks