fix(cd): 使用 inplace rsync 保留 bind mount inode

This commit is contained in:
OoO
2026-04-30 23:32:59 +08:00
parent d06c7016dc
commit 73c7ddcee0
3 changed files with 5 additions and 0 deletions

View File

@@ -53,6 +53,7 @@
- **CD sync hot reload**: 一般 Python/模板同步不再 `restart momo-app`,改為 `docker kill -s HUP momo-pro-system` 讓 Gunicorn 熱重載 workers只重啟 scheduler / telegram-botGunicorn 關閉 `preload_app`,確保 HUP 後 workers 會 import 新版 app code。
- **OpenClaw Bot 第二刀拆分**: Inline Keyboard builders 移到 `services/openclaw_bot/menu_keyboards.py`,透過 `configure_menu_keyboards()` 注入 `latest_date/_GOALS/TAIPEI_TZ`route 檔下降到 5,240 行並補選單回歸測試。
- **CD sync mount drift guard**: 發現舊 app 容器未掛載 `app.py/config.py`rsync 後服務檔已更新但 `/health` 版本仍卡 image 內舊檔CD sync 會檢查 mount僅 drift 時一次性 recreate momo-app其餘維持 HUP 熱重載。
- **CD 單檔 bind mount inode 修復**: `app.py/config.py` 單檔 bind mount 會被 rsync/tar 的 inode replacement 卡住舊檔CD rsync 改用 `--inplace`,避免 HUP reload 後仍讀到舊版本。
### 2026-04-28~29Phase 3e 重構大戰 + daily_sales cache 隱形 bug 根除
- **app.py 縮減 -10.8%**: 7,386 → 6,590 行11 commits 全綠零 502。