手把手教您设置 Docker 构建中的 ARG 变量

本文介绍了如何在Docker构建过程中使用ARG变量,包括通过Docker build命令传递变量,以及在BuildKit后端下的预定义ARG。ARG变量可用于在Dockerfile的构建阶段传递信息,如构建平台和目标平台的详细信息。示例展示了在Raspberry Pi上构建时,如何查看和使用这些预定义的变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

640?wx_fmt=png

出品丨Docker公司(ID:docker-cn)

编译丨小东

每周一、三、五晚6点10分  与您不见不散!


说在前面


ARG 即“构建时变量”可使用 docker build 命令“build-arg=flag”将变量传递给构建器。


使用全新的 Docker 引擎 18.09支持一个新的后端 BuildKit 构建工具包来执行您的构建。

&


您可以通过在 CLI 命令行界面上设置以下环境变量来切换到这个后端:

DOCKER_BUILDKIT=1


使用这个新的后端,Docker 预定义了一组 ARG 变量,其中包含了有关执行构建的节点平台(构建平台)和生成镜像(目标平台)的相关信息。

自动设置以下 ARG 变量:


ARG 变量描述
TARGETPLATFORM正在进行构建镜像的平台,例如:linux/amd64、linux/arm/v7 和 windows/amd64;
TARGETOS目标平台的 OS 操作系统值,例如 :linux,windows;
TARGETARCH目标平台的 CPU 架构;
TARGETVARIANTCPU 的变体,例如:v7 —— 当架构是 arm 时指定 ARMv7;
BUILDPLATFORM执行构建节点平台;
BUILDOS执行构建节点的 OS 操作系统值;
BUILDARCH构建平台的 CPU 架构;
BUILDVARIANT用于构建平台的 CPU变体;


这些参数在全局范围内定义,因此在构建阶段或 RUN 命令中不会自动提供。要在构建阶段中公开其中一个参数,请在没有值的情况下重新定义它。

 

考虑下面的 Dockerfile,我们重新定义了所有上面预定义的 ARG 变量,我在 RaspberryPi 上进行了这个构建,以显示上述 ARG 变量的所有值,如下图所示:


640?wx_fmt=png


点击文尾处“阅读原文”从 Docker 文档中了解更多信息。


640?wx_fmt=png


点击下列标题,阅读更多干货



如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!

 640?wx_fmt=png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值