如何在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
相关产品推荐
相关产品推荐

