用户要求两件事:把 Dockerfile 明确降级成「仅本地开发用」并说清边界;
以及若日后决定移除 hoststack.yaml,把理由写进相关文档。
先核了一遍决定性的技术前提——删掉 YAML 到底会发生什么。读 HostStack agent
源码,优先级是三层,而且和我上一轮写的说法不一样:
1. 控制台 services 表已存的值 -> payload
2. YAML 声明的字段无条件覆盖(guard 只是 `if (svcConfig.start?.command)`,
没有 `&& !payload.x` 短路)
3. YAML 省略的字段沿用控制台值;框架默认值只在仍为空时才填,而 agent 自己的
注释写着 "trigger-payload always populates payload.x from the DB",
所以对已建好的服务这条分支实际是死代码
因此删掉 hoststack.yaml **不会**回落到 cargo fetch / app 那套默认值,而是直接
采用控制台现存的值——而那恰好就是坏掉的 ./target/release/app。"UI 更方便管理"
这个前提成立,但必须先改 UI 再删文件。据此写了决策记录,当前决定是保留。
Dockerfile / docs/deployment.md §3 / docs/design.md / README.md
- 统一标为仅本地开发 / 本地容器调试路径,生产不执行
- 写清边界后果:诊断工具、ENTRYPOINT tini、EXPOSE 8080 在线上都不生效
- 给出判定方法:容器内看 /proc/1/cmdline 与 /etc/os-release
- 顺带修掉 design.md 里把 hoststack.yaml 描述成"网关编排清单"的错误——
文件里没有任何 gateway,只有 services.web
docs/deployment.md §5.1
- 三层优先级替换掉原先"YAML 省略则回落框架默认值"的错误说法
- 新增决策记录:保留的理由(进 git、可 review 可回滚)与代价(双写);
若日后移除,必须在控制台先把 install/build/start 三条改对再删,并把本段
移到 docs/retired.md 记下移除 commit
验证:GATE-DOCS PASS 6/6(SECTION-REF 226 refs / 0,PATH AUDIT 376 refs / 0)。
|
||
|---|---|---|
| .. | ||
| charter.md | ||
| deployment.md | ||
| design.md | ||
| reference.md | ||
| retired.md | ||
| roadmap.md | ||