需构建自定义docker镜像以适配私有工具或边缘硬件,共五种路径:一、源码构建;二、替换基础镜像减小体积;三、commit运行容器固化状态;四、docker-compose+arg实现配置分离;五、拉取公开镜像后挂载定制配置。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望为Hermes Agent定制运行环境、集成私有工具或适配特定边缘硬件,则需构建自定义Docker镜像。以下是多种可行的构建路径,涵盖从源码构建、配置驱动构建到复用公开镜像的完整操作流程:
一、基于项目源码构建镜像
该方法适用于需要修改Hermes Agent源代码、调整依赖版本或启用实验性功能的场景。镜像构建过程完全可控,且与官方Dockerfile保持同步。
1、克隆Hermes Agent官方仓库:
git clone https://gitcode.com/GitHub_Trending/he/hermes-agent
2、进入项目根目录:
cd hermes-agent
3、编辑environments/default.yaml文件,按需配置运行参数,例如:
agent: {max_context_size: 16384, enable_tool_caching: false}
4、执行镜像构建命令:
docker build -t hermes-agent:custom -f environments/Dockerfile .
二、使用预置Dockerfile并替换基础镜像
该方法用于降低镜像体积或增强安全性,例如将默认的ubuntu基础镜像替换为alpine或distroless镜像,同时保留原有构建逻辑和入口点。
1、复制原始Dockerfile至本地工作目录:
cp environments/Dockerfile ./Dockerfile.alpine
2、编辑Dockerfile.alpine,将第一行FROM指令替换为:
FROM python:3.11-alpine
3、在RUN指令后添加清理缓存步骤:
RUN apk add --no-cache gcc musl-dev && pip install --no-cache-dir -r requirements.txt && apk del gcc musl-dev
4、构建轻量镜像:
docker build -t hermes-agent:alpine -f Dockerfile.alpine .
三、通过docker commit从运行容器生成镜像
该方法适用于已部署调试完成的Hermes Agent实例,可将当前容器状态(含已下载模型缓存、生成的skills、挂载数据卷内容)固化为新镜像,适合快速复现生产环境。
1、启动一个临时容器并挂载必要卷:
docker run -d --name hermes-dev -v $(pwd)/data:/opt/data -p 8080:8080 jvsheng/hermes-agent:latest
2、进入容器安装额外依赖(如curl、jq等调试工具):
docker exec -it hermes-dev apk add --no-cache curl jq
3、在容器内生成测试技能并验证功能正常:
docker exec hermes-dev sh -c "echo 'test skill' > /opt/data/skills/test.yml"
4、提交当前容器状态为新镜像:
docker commit -a "admin" -m "added curl/jq + test skill" hermes-dev hermes-agent:with-tools
四、使用docker-compose叠加配置构建镜像
该方法适用于CI/CD流水线中需动态注入环境变量、密钥或配置片段的场景,通过多阶段构建与ARG参数实现配置与代码分离。
1、在Dockerfile顶部添加构建参数声明:
ARG MINIMAX_CN_API_KEY
ARG ENVIRONMENT=prod
2、在镜像构建时传入敏感值(不写入镜像层):
docker build --build-arg MINIMAX_CN_API_KEY=sk-xxx --build-arg ENVIRONMENT=dev -t hermes-agent:env-aware .
3、在ENTRYPOINT脚本中读取ARG值并写入运行时.env文件:
echo "MINIMAX_CN_API_KEY=$MINIMAX_CN_API_KEY" > /opt/data/.env
4、确保.dockerignore文件排除本地config/与.env,防止敏感信息意外打包。
五、拉取公开镜像后重打标签并注入配置
该方法适用于无构建环境或仅需微调配置的轻量部署,直接复用已验证可用的镜像,避免重复构建耗时,适合边缘设备现场快速部署。
1、拉取已发布的镜像:
docker pull jvsheng/hermes-agent:latest
2、创建配置挂载目录并写入定制化default.yaml:
mkdir -p ./config && cp environments/default.yaml ./config/default.yaml
3、修改./config/default.yaml中的resource_limits段:
cpu: 1 memory: 2G
4、运行容器并绑定配置目录:
docker run -d --name hermes-edge -v $(pwd)/config:/app/config -v $(pwd)/data:/opt/data -p 5556:5555 jvsheng/hermes-agent:latest











