fix(avatar): 杜绝发布后继续运行旧镜像 #24

Merged
stefanfeng merged 4 commits from codex/avatar-deploy-integrity-20260909 into main 2026-09-11 11:55:14 +08:00
Owner

问题

测试环境曾显示发布成功,但实际持续运行 8 月 27 日旧镜像;现有健康接口无法识别运行版本。旧编排还只挂载 SQLite 主文件,WAL/SHM 留在容器层,强制换容器后可能出现索引状态回退。

修复

  • 前后端镜像写入同一完整 Git SHA 和构建时间,镜像改用 SHA 标签
  • 强制要求发布 SHA、构建时间及固定宿主机数据目录,缺失即失败
  • SQLite 改为挂载整个数据库目录,确保主库、WAL、SHM 一起持久化
  • 强制重建并等待 OCR、数据库、上传目录健康检查通过
  • 新增发布后校验脚本,从公网反查前后端 SHA,并核对镜像标签和数据挂载
  • Jenkins 必须以校验脚本通过作为发布成功条件

验证

  • 后端 pytest:130 passed
  • 前端构建及行为测试:通过
  • 缺失必要发布变量:编排按预期拒绝启动
  • 错误 SHA:发布校验按预期失败
  • 测试服务器精确提交部署:通过,用户/分身/文档数量保持 3/1/9
  • 扫描 PDF 重建:ready,40 个知识切片
  • 未手工 checkpoint 强制删除并重建后端容器:文档仍为 ready/100/40,证明 WAL 持久化有效
## 问题 测试环境曾显示发布成功,但实际持续运行 8 月 27 日旧镜像;现有健康接口无法识别运行版本。旧编排还只挂载 SQLite 主文件,WAL/SHM 留在容器层,强制换容器后可能出现索引状态回退。 ## 修复 - 前后端镜像写入同一完整 Git SHA 和构建时间,镜像改用 SHA 标签 - 强制要求发布 SHA、构建时间及固定宿主机数据目录,缺失即失败 - SQLite 改为挂载整个数据库目录,确保主库、WAL、SHM 一起持久化 - 强制重建并等待 OCR、数据库、上传目录健康检查通过 - 新增发布后校验脚本,从公网反查前后端 SHA,并核对镜像标签和数据挂载 - Jenkins 必须以校验脚本通过作为发布成功条件 ## 验证 - 后端 pytest:130 passed - 前端构建及行为测试:通过 - 缺失必要发布变量:编排按预期拒绝启动 - 错误 SHA:发布校验按预期失败 - 测试服务器精确提交部署:通过,用户/分身/文档数量保持 3/1/9 - 扫描 PDF 重建:ready,40 个知识切片 - 未手工 checkpoint 强制删除并重建后端容器:文档仍为 ready/100/40,证明 WAL 持久化有效
stefanfeng added 1 commit 2026-09-09 10:50:40 +08:00
stefanfeng added 1 commit 2026-09-09 10:56:48 +08:00
stefanfeng added 1 commit 2026-09-09 10:58:13 +08:00
stefanfeng added 1 commit 2026-09-09 11:06:07 +08:00
stefanfeng merged commit 910a05107a into main 2026-09-11 11:55:14 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: stefanfeng/huihuiSquare#24