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

如何在bash脚本中通过--build-arg为Dockerfile的FROM指令传递镜像版本?

通过--build-arg为Dockerfile的FROM指令传递镜像版本

要实现用--build-arg填充FROM指令中的镜像版本,核心是注意ARG指令的声明位置——只有在FROM之前定义的ARG才能在FROM中引用,具体操作如下:

1. 修改Dockerfile,提前声明ARG

在FROM指令前定义ARG,可指定默认版本(不传参数时会自动使用该默认值):

# 声明ARG,设置默认版本(可选)
ARG VERSION=1.0.0
# 在FROM中引用该ARG变量
FROM <custom_Image>:$VERSION

# 后续镜像构建步骤示例
RUN echo "当前使用的镜像版本: $VERSION"

2. 在bash脚本中执行docker build并传递参数

直接在docker build命令后通过--build-arg指定VERSION的值;如果版本是脚本内的变量,直接引用即可:

#!/bin/bash

# 脚本内定义目标版本(也可直接写在build命令中)
TARGET_VERSION="2.1.5"

# 执行镜像构建,传递VERSION参数
docker build \
  --build-arg VERSION=$TARGET_VERSION \
  -t my-custom-image:$TARGET_VERSION \
  .

关键注意事项

  • 若ARG未设置默认值,执行docker build时必须通过--build-arg VERSION=xxx传递参数,否则构建会直接失败。
  • FROM指令之后声明的ARG无法在FROM中使用,务必确保ARG定义在FROM之前。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:55:09