本卡屬 FR-193(母卡 FR-193 母案(同清單上一張)),卡 A5,階段 P1,批 4。只改 evidence-agent。依賴:A3、A4。
升級流程:主系統發更新 → Agent 寫升級單 → 主機 systemd 單元接手驗簽、docker load、compose up 換版。三支單元維持 root 跑(staging 目錄與簽章驗證要 root),但裡面 docker load/tag/images/compose 全走 A3 的 dk()。從舊版帶資料升到新版跑一遍;中途拔電重開機 boot-check 要能退回。
extend:單元仍以 root 跑(staging 目錄與簽章驗證要 root),裡面 docker load/tag/compose 走 A3 的 dk()
repo:/Users/chouraymond/Projects/Billows/Audit-Manager/evidence-agent
改既有:scripts/install/lib/upgrade_order.sh
改既有:scripts/install/lib/upgrade_runner.sh
改既有:scripts/install/lib/systemd/guidant-agent-upgrade-order.service
改既有:scripts/install/lib/systemd/guidant-agent-upgrade-boot-check.service
lib/systemd/guidant-agent-upgrade-order.service 與 -boot-check.service 維持 User=root(D6),After=docker.service 改 After=user@@[email protected],install 時代入。.path 不動。lib/upgrade_order.sh:第 0 步 docker load、_uo_tags、docker tag 已被 A3 換成 dk;確認 staging 目錄 agent-staging/ 仍 root 700、解包與 verify-tree 在 root 做完才 dk load。_uo_after_install 建 agent-order/ 走 A4 換算。lib/upgrade_runner.sh:dc_up、docker images 走 dk;回滾段 以舊版映像重建容器 同。fail 印「本版起改 rootless,請 uninstall 後重新安裝」。寫進卡回寫與 A7 手冊。echo b > /proc/sysrq-trigger 硬重開 → boot-check 退回舊版且容器起來;回滾段 guidant-agent-compose upgrade --rollback(若有)正常。主系統發更新指令 → Agent 寫單 → 主機單元接手 → 新版起來;中途拔電重開機 boot-check 退回舊版;進度檔與 log.gz 上傳正常
docs/features/FR-193-2611-docker-rootless/design-v1.2.md(現行定稿)§1 決策 D1~D8、§2.2 接入點盤點、§3 詳細設計本卡那節、§4 主機六項、§6 拆卡表本卡那列;design.md/design-v1.1.md 已凍結只當沿革scripts/build/fetch_tpm2_debs.sh(離線套件抓法)、Agent scripts/install/lib/tpm.sh(離線裝法與 gate)、lib/upgrade_order.sh 檔頭(升級單不可信五條)、BE scripts/build/audit_nonroot_stack.sh --agent(總驗工具)