从本机缓存的 registry.hoststack.dev/hoststack/agent 镜像里直接读出运行时 配置,纠正了此前靠猜的四条部署事实: hoststack.yaml - 撤回上一版把 install: 合并进 build.command 的"修正"——schema 里 install.command 本来就是合法键(agent 的 schema 与 yaml-parser.ts 均定义), install/build/start 是三条独立命令 - 补上为什么这个文件不能删:runtime: rust 的框架默认 start 命令是 ./target/release/app,与 Cargo 包名无关。删掉 YAML 后 Start Command 回落到 app,进程在绑定端口前就以 not found 退出 - 记录实测优先级:YAML 值生效,省略才回落框架默认值(Cargo.toml 只声明 [[bin]] message-weave,仓库里既无 app 目标也无 app.rs) Dockerfile - 移除 bind9-dnsutils:连带 libicudata.so.72(29.8MB)等多级依赖,实测 边际成本 42.7MB,是其余 7 个工具总和(19.7MB)的两倍多 - DNS 解析用基础镜像自带的 getent 已覆盖(getent hosts / ahostsv4 / ahostsv6) - 注释写明 19.7MB 的实测口径 docs/deployment.md - §5.1 重写:build 在 rust:slim-trixie、runner 是 debian:trixie-slim, 本仓库 Dockerfile 完全不被执行 - 修正"没有 install: 键"与"validate 拦未知键"两处错误说法:agent 部署路径 不应用 zod 校验,未知键被静默丢弃而非报错,validate 才是唯一防线 - §4.1 容器安全档改成源码实测值:readonlyRootfs/dropCapabilities/ noNewPrivileges 全为 true,pidsLimit 256,tmpfs 选项 rw,nosuid,nodev, size=64m——原先写的 noexec 并不存在;并标注 dev 档 rootfs 可写 - §8.1 明确两条部署路径的镜像差异(bookworm vs trixie) - §6 HEALTHCHECK 与二进制"内置 health 子命令"的过期说法 - 删除文档中指向不存在文件 app.rs 的引用 验证:GATE-DOCS PASS 6/6(PATH AUDIT 369 path-refs / 0); runtime 阶段实测构建成功且 curl/ps/pgrep/ss/ip/jq/nc/getent 齐备、 dig 按预期缺席、getent hosts 可解析、uid 999; 8 个工具 dpkg Installed-Size 合计 7935kB 而全量 du 差 62.3MB, 剔除 dig 后 19.7MB——这个差额就是本次砍掉的膨胀。 |
||
|---|---|---|
| .. | ||
| charter.md | ||
| deployment.md | ||
| design.md | ||
| reference.md | ||
| retired.md | ||
| roadmap.md | ||