You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指定SHA时如何使用多架构Docker基础镜像?

多架构Docker镜像固定SHA的解决方案

不用为每个架构单独编写Dockerfile,通过Docker Buildx结合构建参数就能在单个Dockerfile中实现不同架构绑定对应SHA的需求,具体步骤如下:

方法1:利用TARGETARCH变量与构建参数

在Dockerfile中通过ARG定义不同架构对应的基础镜像SHA,结合Docker Buildx自动注入的TARGETARCH变量动态选择:

# 声明Docker Buildx自动传递的架构变量
ARG TARGETARCH
# 定义各架构对应的基础镜像SHA(替换为你实际获取的SHA值)
ARG BASE_SHA_amd64="a1b2c3d4e5f6..."
ARG BASE_SHA_arm64="f6e5d4c3b2a1..."
# 根据当前构建架构选择对应的SHA
FROM bitnami/minideb@sha256:${BASE_SHA_${TARGETARCH}}

# 后续镜像构建步骤...

执行构建时,通过--build-arg传递各架构的SHA,并指定目标平台:

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  --build-arg BASE_SHA_amd64="你的x86_64架构SHA" \
  --build-arg BASE_SHA_arm64="你的ARM64架构SHA" \
  -t your-image:latest \
  --push \ # 若需要推送到仓库则添加
  .

注意事项

  • TARGETARCH是Docker Buildx自动注入的内置变量,会根据--platform指定的架构自动赋值(x86_64对应amd64,ARM64对应arm64),确保变量名和你定义的BASE_SHA_*后缀一致。
  • 务必从镜像仓库的对应架构标签页获取准确的SHA值,避免因SHA不匹配导致构建失败。

内容的提问来源于stack exchange,提问作者Will Gordon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 15:35:22