← 中文资源

简体中文版本

用 buildx 构建多架构镜像

一条命令构建并推送 amd64 与 arm64 变体,使同一标签可在混合集群上运行。

阅读英文原文

目标

部署在 arm64 节点上失败,因为镜像只有 amd64 版本。本配方用 buildx 同时构建并推送 linux/amd64 与 linux/arm64,并在单一标签下生成多架构清单,再用 imagetools inspect 验证清单包含两个平台;提醒模拟构建很慢,arm 镜像运行失败需检查基础镜像与二进制支持。

步骤要点

  1. 用 buildx 同时构建并推送两个平台。
  2. 用 imagetools 检查清单中的平台。
  3. 在有原生构建器时优先原生而非模拟。
  4. 检查基础镜像与二进制对目标架构的支持。
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ghcr.io/org/app:1.2.3 --push .

排错提示

  • 模拟构建较慢。
  • 基础镜像需支持各平台。
  • 增加 CI 成本。

适用边界

  • 仿真构建慢,增加 CI 成本。
  • 依赖基础镜像的架构支持。