尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Hermes Agent 容器镜像瘦身实战

Hermes Agent 容器镜像瘦身实战 Hermes Agent 容器镜像瘦身实战【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent每次 CI 拉取 Hermes Agent 新镜像都要等十几分钟4GB 的镜像在办公网下超过一分钟首次部署更久。镜像还随功能持续膨胀——编译器残留、pip 缓存、只给开发用的依赖全被默默打包进去。下面是我实际做过的镜像瘦身步骤把体积压到 1GB 以内拉取时间从 12 分钟降到 3 分钟。为什么镜像体积值得关注大镜像的代价体现在三处拉取时长4GB 镜像在 50Mbps 线路上要 11 分钟1GB 只要 3 分钟冷启动节点解包层数多、体量大首次扩容明显变慢带宽成本每次镜像更新都要重传变化层依赖层顺序放错团队每天都在重复付费。这三项不需要理论就能感知——每次发版都在体会。 优化链路下面按构建链路自底向上展开每层只解决一个问题效果直接反映在最终体积上。1. 基础镜像层别用完整发行版打底这层解决地基有多大。项目Dockerfile直接基于debian:13.4精简底座uv 和 node 各用一个独立 source 阶段拷入二进制而不是站在带完整工具链的python:3.11基础镜像上。slim 路线比完整版节省 60%~70% 的底子体积是整个瘦身收益最大的一项。FROM debian:13.4 AS sqlite_build # 构建阶段只编译修 bug 用的 SQLite FROM debian:13.4 # 运行阶段不继承构建阶段的工具 COPY --fromsqlite_build /opt/sqlite-fixed/lib/*.so.3.53.4 /usr/local/lib/2. 构建与运行分离把编译器挡在最终镜像外这层解决留下的东西是不是都非留不可。SQLite 需要自编译修掉 WAL-reset bug于是用专门的 build 阶段编出libsqlite3.sonode 则从上游 slim 镜像拷入。最终运行镜像只接收 .so 与 node 二进制build-essential和整套工具链随构建阶段丢弃通常再省 30%~50%。3. 依赖裁剪与缓存清单文件先于源码进层这层解决装多了和缓存反复失效。两个细节一是uv sync只装生产用的 extras明确不用--all-extrasRL 相关的 torch、wandb 不进发布镜像光这一项就是几个 GB二是先拷pyproject.toml与uv.lock装依赖、后拷源码。项目里拆出这层前每次只改源码的提交都要重跑约 4~5 分钟的依赖安装。COPY pyproject.toml uv.lock ./ # 清单先行 → 依赖层可命中缓存 RUN uv sync --frozen --no-install-project --extra all COPY --link . . # 源码最后改代码不碰依赖层4. 运行时参数镜像只读数据进卷这层解决跑起来之后镜像不再继续变大。代码固化在只读的/opt/hermes可变状态全部落到/opt/data卷连懒安装的 SDK 也指向数据卷而非镜像层。配合部署端设置空闲超时与内存上限容器闲置即回收扩容时不会每次都吃全额冷启动。ENV HERMES_HOME/opt/data # 可变状态放持久卷 ENV HERMES_DISABLE_LAZY_INSTALLS1 # 代码层只读运行时不再 npm/pip VOLUME [/opt/data]⚠️ 容易踩的坑现象改一行源码所有依赖层失效构建时间翻倍。原因COPY . .排在依赖安装之前任何代码变更都打破层哈希。正确做法清单文件pyproject.toml、uv.lock、package.json先行安装源码后拷。现象镜像不大但拉取仍慢节点首次启动总要多等几分钟。原因层数过多且 apt 列表、npm/pip 缓存没清理首启每层都要重新校验。正确做法系统依赖合并进一个 RUN末尾顺手rm -rf /var/lib/apt/lists/*和npm cache clean --force。现象功能首次启动正常容器重建后突然ModuleNotFoundError。原因懒安装写进了镜像层重建即丢失。正确做法能构建期烤入的就uv sync/npm ci烤入必须懒装的指向持久卷。别急着重写整个Dockerfile先在 CI 里加一条docker history看哪层最厚只做基础镜像选型 清单先行两件事下个发版就能看到拉取时间下降。【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表