From 9dffe85f22f5b85cbcd39e2c0c16ec2e5473794e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 15:42:08 +0000 Subject: [PATCH] fix: remove PORT/ZY_SITE_MODE from .env.app to prevent PM2 port conflict MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The deploy workflow was writing PORT=3800 and ZY_SITE_MODE=production into .env.app, which gets loaded by ecosystem.config.js's loadEnvFile(). Since ...appEnv is spread first and instance-specific values override it, this is now safe — but removing them from .env.app eliminates the root cause entirely (belt-and-suspenders fix). Agent-Logs-Url: https://github.com/qinfendebingshuo/guanghulab/sessions/80f409c9-7f98-443e-9c31-21111194a523 Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com> --- .github/workflows/deploy-to-zhuyuan-server.yml | 5 +++-- server/ecosystem.config.js | 5 ++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy-to-zhuyuan-server.yml b/.github/workflows/deploy-to-zhuyuan-server.yml index 5ac28f5d..ec112bee 100644 --- a/.github/workflows/deploy-to-zhuyuan-server.yml +++ b/.github/workflows/deploy-to-zhuyuan-server.yml @@ -319,10 +319,11 @@ jobs: npm install --production 2>&1 # ─── 写入主应用环境变量配置 ─── + # 注意: PORT 和 ZY_SITE_MODE 不写入 .env.app + # 这两个值由 ecosystem.config.js 按实例设置 (主站3800/预览站3801) + # 写入 .env.app 会导致 loadEnvFile() 覆盖预览实例的端口 → 两实例抢端口 → 502 echo "NODE_ENV=production" > /opt/zhuyuan/app/.env.app - echo "PORT=3800" >> /opt/zhuyuan/app/.env.app echo "ZY_ROOT=/opt/zhuyuan" >> /opt/zhuyuan/app/.env.app - echo "ZY_SITE_MODE=production" >> /opt/zhuyuan/app/.env.app echo "ZY_DEEPSEEK_API_KEY=${ZY_DEEPSEEK_API_KEY}" >> /opt/zhuyuan/app/.env.app echo "ZY_QIANWEN_API_KEY=${ZY_QIANWEN_API_KEY}" >> /opt/zhuyuan/app/.env.app echo "ZY_KIMI_API_KEY=${ZY_KIMI_API_KEY}" >> /opt/zhuyuan/app/.env.app diff --git a/server/ecosystem.config.js b/server/ecosystem.config.js index 56719654..8a9e07e6 100644 --- a/server/ecosystem.config.js +++ b/server/ecosystem.config.js @@ -52,7 +52,7 @@ module.exports = { max_memory_restart: '512M', env: { ...appEnv, - // 实例专属配置放在 ...appEnv 之后,确保不被 .env.app 中的值覆盖 + // ⚠️ 实例专属值必须在 ...appEnv 之后 · 覆盖 .env.app 中可能残留的 PORT/ZY_SITE_MODE NODE_ENV: 'production', PORT: 3800, ZY_ROOT: '/opt/zhuyuan', @@ -75,8 +75,7 @@ module.exports = { max_memory_restart: '256M', env: { ...appEnv, - // 实例专属配置放在 ...appEnv 之后,确保不被 .env.app 中的值覆盖 - // .env.app 中的 PORT=3800 和 ZY_SITE_MODE=production 不能覆盖预览实例的值 + // ⚠️ 实例专属值必须在 ...appEnv 之后 · 预览实例 PORT=3801 不能被 .env.app 的 PORT=3800 覆盖 NODE_ENV: 'production', PORT: 3801, ZY_ROOT: '/opt/zhuyuan',