fix: remove PORT/ZY_SITE_MODE from .env.app to prevent PM2 port conflict

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>
This commit is contained in:
copilot-swe-agent[bot] 2026-04-11 15:42:08 +00:00 committed by GitHub
parent ece55b2c86
commit 9dffe85f22
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 5 deletions

View File

@ -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

View File

@ -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',