docker buildx 的的内置变量

docker build buildx

Posted by gomyck on May 15, 2025

在构建多平台镜像时, 如果从本地复制到容器的文件, 区分指令集, 那么可以使用以下方法来根据不同平台的指令集进行区分

1
2
3
4
5
6
7
FROM ubuntu:22.04

LABEL maintainer="gomyck"

ARG TARGETARCH
COPY mongo_tools/mongodump_${TARGETARCH} /usr/local/bin/mongodump

这些变量是 Docker BuildKit 和 buildx 自动注入的,无需定义 ARG,直接可以 ARG 使用。

内置变量 说明 示例值
TARGETARCH 构建目标的 CPU 架构 amd64, arm64, arm
TARGETOS 构建目标的操作系统 linux, windows
TARGETVARIANT 架构变种(如 v7v8,主要用于 ARM) v7, v8
BUILDPLATFORM 当前构建机的平台(build host) linux/amd64
TARGETPLATFORM 构建目标平台(buildx 设置的平台) linux/arm64