多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

HolyClaude 多架构构建指南:如何同时构建 amd64 与 arm64 双平台 Docker 镜像

HolyClaude 多架构构建指南:如何同时构建 amd64 与 arm64 双平台 Docker 镜像 HolyClaude 多架构构建指南如何同时构建 amd64 与 arm64 双平台 Docker 镜像【免费下载链接】HolyClaudeAI coding workstation: Claude Code web UI 8 AI CLIs headless browser 50 tools项目地址: https://gitcode.com/gh_mirrors/ho/HolyClaudeHolyClaude 是一个开箱即用的 AI 编程工作站容器镜像集成了 Claude Code、Web UI、8 个 AI CLI、无头浏览器和 50 开发工具。本文手把手教你用 Docker buildx 为它构建 amd64 与 arm64 双平台镜像一份 Dockerfile 搞定 Intel 与 Apple Silicon、树莓派、AWS Graviton 全部设备。双平台支持范围一览HolyClaude 官方明确支持两个 Linux 平台平台状态典型设备linux/amd64✅ 原生支持x86_64 服务器、Docker DesktopIntellinux/arm64✅ 原生支持Apple Silicon、树莓派 4、AWS Graviton平台清单同时被锁定在发布契约文件 contracts/product-facts.json 中第 23-24 行由 CI 工作流在每次构建前自动校验保证镜像不会悄悄缩水成单架构。 镜像分full全量工具与slim精简核心两种变体本文命令两者通用。单份 DockerfileTARGETARCH 变量是关键HolyClaude 没有为每个架构准备单独的 Dockerfile。Dockerfile 里声明了两个关键变量ARG VARIANTfull # 镜像变体full / slim ARG TARGETARCH # Docker 自动注入amd64 或 arm64构建时 Docker 会自动注入TARGETARCHDockerfile 内部用case语句按架构下载对应的二进制与校验和比如 Dockerfile 中 s6-overlay 的x86_64/aarch64包、Dockerfile 中 Claude Code 二进制的架构选择。这意味着你只需要写一次构建命令架构差异全部由构建系统处理。一键构建步骤创建 buildx 构建器在 Intel 或 Apple Silicon 上交叉构建另一架构需要 QEMU 模拟。Docker 官方提供了一行脚本自动注册 binfmt 并创建构建器docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker buildx create --name holyclaude-builder --use构建完成后用docker buildx inspect可确认该构建器同时覆盖两个平台。最快配置方法一次构建双架构镜像# 1. 获取源码 git clone https://gitcode.com/gh_mirrors/ho/HolyClaude cd HolyClaude # 2. 同时构建 amd64 arm64 双平台镜像 docker buildx build \ --platform linux/amd64,linux/arm64 \ -t holyclaude:local \ --load . # 3. 查看本地镜像 docker image inspect holyclaude:local要点提示--platform里逗号分隔两个平台一次命令并行产出双架构镜像在本地构建时用--load把产物载入本地 Docker 镜像库如果要直接推送到镜像仓库改用--push要构建精简版追加--build-arg VARIANTslim即可在树莓派等 ARM 机器上构建 amd64 同样可行只是会慢一些模拟执行。生产级方案双机并行原生构建QEMU 模拟虽然方便但速度慢且偶尔不稳。HolyClaude 的发布流水线 docker-publish.yml 采用的是更稳妥的矩阵并行方案变体架构执行机器fullamd64ubuntu-24.04x86 原生fullarm64ubuntu-24.04-armARM 原生slimamd64ubuntu-24.04slimarm64ubuntu-24.04-arm四条流水线同时起跑各自在原生架构机器上构建速度最快、零模拟风险。核心构建命令如下docker-publish.ymldocker buildx build \ --platform linux/${arch} \ --build-arg TARGETARCH${arch} \ --cache-from typegha,scope${variant}-${arch} \ --cache-to typegha,modemax,scope${variant}-${arch} \ -t holyclaude:${variant} .其中按「变体-架构」分别设置构建缓存 scope让两条 ARM 流水线互不干扰、各自复用缓存。构建完成后CI 还会用docker buildx imagetools inspect校验每个单平台清单的架构与声明一致防止产物张冠李戴。验证构建产物确认双架构都就绪# 查看镜像支持的架构列表应包含 amd64 和 arm64 docker buildx imagetools inspect holyclaude:local # 在 ARM 机器上试运行确认原生兼容 docker run --rm --platform linux/arm64 holyclaude:local claude --version如果imagetools inspect输出中出现amd64与arm64两条平台记录且 ARM 机器上的uname -m返回aarch64说明双架构镜像构建成功。常见问题与排错问题原因解决报BINFMT registered for format arm64 but not workingQEMU binfmt 未注册重新执行multiarch/qemu-user-static脚本交叉构建极慢模拟执行效率低换原生架构机器构建或加构建缓存docker: unknown flag: --platform版本过旧升级 Docker 至 23.0 并启用 buildx 插件只想在 ARM 本机构建 ARM 镜像无需交叉构建直接docker buildx build --platform linux/arm64 -t holyclaude .更多构建与运行细节可参阅 docs/architecture.md 与 docs/troubleshooting.md。总结HolyClaude 的多架构构建可以概括为三步注册 QEMU一行脚本启用跨架构模拟能力一条命令双平台--platform linux/amd64,linux/arm64同时产出两套镜像校验产物imagetools inspect确认清单中双架构齐全。构建成功后把 Compose 文件中的镜像名改为本地标签 docker-compose.yamldocker compose up -d拉起服务在http://localhost:3001打开 Web UI——你的双架构 AI 编程工作站就准备好了。【免费下载链接】HolyClaudeAI coding workstation: Claude Code web UI 8 AI CLIs headless browser 50 tools项目地址: https://gitcode.com/gh_mirrors/ho/HolyClaude创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表