ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HolyClaude本地构建实战:从源码构建full与slim镜像并读懂Dockerfile

HolyClaude本地构建实战:从源码构建full与slim镜像并读懂Dockerfile HolyClaude本地构建实战从源码构建full与slim镜像并读懂Dockerfile【免费下载链接】HolyClaudeAI coding workstation: Claude Code web UI 8 AI CLIs headless browser 50 tools项目地址: https://gitcode.com/gh_mirrors/ho/HolyClaudeHolyClaude 是一个开箱即用的 AI 编程工作站容器把 Claude Code、CloudCLI 网页界面、8 个 AI CLI、Chromium 无头浏览器和 50 开发工具全部预装进一个 Docker 镜像。本文带你从源码本地构建full 与 slim 两种镜像并逐段读懂这份约 1000 行的 Dockerfile帮你彻底搞懂这个一键 AI 开发环境是怎么炼成的。为什么要本地构建镜像平时直接docker pull官方镜像最省事但本地构建有几个好处可复现Dockerfile 中所有组件都锁定了版本号和 SHA256 校验值你构建出的镜像与官方发布完全一致可定制想改预装工具、换 Node 版本、加自己的补丁都可以先读懂再动手适配私有环境内网机器、ARM 服务器、NAS 等场景下自己构建更灵活。构建前准备只需源码和 Docker本地构建没有任何额外依赖准备好两样东西即可一台装有 Docker或 Podman的机器建议至少 8GB 内存、预留 10GB 以上磁盘空间HolyClaude 源码仓库git clone 后进入目录即可。 full 镜像构建时间较长要编译 ffmpeg 安全补丁、安装大量 CLIslim 镜像快得多第一次练手建议先构建 slim。一键构建 full 与 slim 镜像进入仓库根目录后两条命令搞定# 构建 full 镜像默认全量工具推荐大多数人使用 docker build -t holyclaude . # 构建 slim 镜像仅核心工具体积更小适合小 VPS / NAS docker build --build-arg VARIANTslim -t holyclaude:slim .区别在哪由VARIANT这个构建参数控制slim 镜像跳过 full 独有的部署类 CLIVercel、Netlify、Cloudflare Wrangler 等、ffmpeg 安全补丁和 Azure CLI但Claude Code 本体、网页 UI、无头浏览器和核心开发工具两者都有。如果需要在 Apple Silicon、树莓派等 ARM 机器上构建docker buildx build --platform linux/arm64 -t holyclaude .构建完成后把 Compose 文件里的image: coderluii/holyclaude:latest换成你本地镜像名holyclaude然后照常docker compose up -d即可。仓库里提供了三套现成模板可以直接参考docker-compose.yaml、docker-compose.full.yaml 和 docker-compose.podman-rootless.yaml。读懂 Dockerfile镜像是怎么炼成的这份 Dockerfile 看似很长实际结构非常清晰可以分成 5 个部分理解。1️⃣ 多阶段构建三个预制菜阶段文件开头定义了辅助构建阶段esbuild-builderDockerfile#L12-L22用 Go 编译 3 个指定版本的 esbuild 二进制供后续 Web 终端插件使用ffmpeg-security-builderDockerfile#L24-L48仅 full 变体启用把官方 ffmpeg 安全补丁编译成 deb 包补丁源在 security/patches/ffmpeg/ 目录python-runtimeDockerfile#L50提供 Python 3.14 运行时。最终镜像基于Node 26.9.0 Debian Bookworm搭建这种多阶段 主阶段的写法让每一层的职责都清晰可查。2️⃣ 一切皆锁版本、带校验第 62-147 行 是一长串ARG参数s6-overlay、fzf、Chromium 153、Claude Code 2.1.276……每个下载都绑定版本号 SHA256 校验值并区分 amd64/arm64 双架构。构建时先sha256sum -c校验、再安装任何篡改或上游变动都会让构建直接失败——这就是官方强调的可复现构建。3️⃣ Claude Code 的安装细节新手易踩坑第 335-348 行 安装 Claude Code CLI 时有两个精心设计的点特意先WORKDIR /workspace并切换到claude用户因为安装脚本在 root 属主的目录下会挂起Dockerfile 注释里专门标注了 CRITICAL安装后立刻rm -f ~/.claude.json保证容器内不带任何预置会话数据。4️⃣ s6-overlay 多进程守护一个容器跑多个服务普通容器只跑一个进程而 HolyClaude 要在容器内同时守护 4 个服务靠的是 s6-overlay/s6-rc.d/ 下的服务定义服务作用运行脚本cloudcli网页 UI Web 终端3001 端口s6-overlay/s6-rc.d/cloudcli/runxvfb虚拟显示让无头 Chromium 能跑s6-overlay/s6-rc.d/xvfb/runpersist-claude-json定期把会话状态落盘防丢s6-overlay/s6-rc.d/persist-claude-json/runsshd可选的 SSH 远程 shells6-overlay/s6-rc.d/sshd/run启动流程是scripts/entrypoint.sh 先做 UID 映射和状态恢复再exec /init把 PID 1 交给 s6-overlay。完整架构图解可以阅读 docs/architecture.md。5️⃣ 收尾变体标记、健康检查与入口最后几行第 962-1015 行做三件事把full或slim写入/etc/holyclaude-variant运行时按变体加载不同的记忆模板config/claude-memory-full.md / config/claude-memory-slim.md设置HEALTHCHECK每 30 秒探活 3001 端口ENTRYPOINT指向 entrypoint.sh容器启动即全自动。构建完成后如何验证启动容器后做三个检查浏览器打开http://localhost:3001能看到 CloudCLI 登录页docker ps中容器状态显示(healthy)对应上面的健康检查在网页端完成 Anthropic 账号登录后发一句列出当前目录Claude Code 正常响应即全链路打通。仓库还附带了一整套测试脚本想深入验证可以看 tests/ 目录例如 tests/product_facts.test.mjs 会校验 contracts/product-facts.json 与 Dockerfile、Compose 文件中的关键版本是否一致。常见问题速查 ️问题原因与对策构建中途下载失败重试很久所有下载都内置 8 次自动重试--retry 8网络差时耐心等待或加代理构建报 Unsupported TARGETARCH只支持 amd64/arm64其他架构需自行调整TARGETARCH判断slim 镜像里缺某个部署工具属预期行为slim 不预装 full 独有的 CLIClaude 可在运行时按需安装想改配置后生效改 Dockerfile 后重新docker build运行时配置参考 docs/configuration.md总结从docker build一条命令到锁定版本、校验和、多阶段构建、s6-overlay 守护——HolyClaude 的 Dockerfile 是一份很好的生产级 Docker 镜像范本。跑通 full 和 slim 两个变体后你就既拥有了本地镜像也理解了它每个设计决策背后的原因。 延伸阅读docs/architecture.md架构详解、docs/ollama.md本地模型接入、docs/troubleshooting.md故障排查。【免费下载链接】HolyClaudeAI coding workstation: Claude Code web UI 8 AI CLIs headless browser 50 tools项目地址: https://gitcode.com/gh_mirrors/ho/HolyClaude创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表