在Dockerfile中获取图像标签

时间:2020-04-06 19:36:50

标签: docker dockerfile

我有一个Dockerfile,需要使用ENV命令从URL下载软件的特定版本。如:

Dockerfile中:

FROM ubuntu

ENV sw_ver=1.2.3

ADD https://some_address/_name_$sw_ver /some_dir

build命令与此类似:

docker build -t my_image:1.2.3 .

现在,如果不用设置ENV变量,而只需通过更改docker build命令中的标记,就可以为软件的不同版本构建不同的映像,那就太好了。那么是否可以读取Dockerfile内的标签号并将其用作变量?

2 个答案:

答案 0 :(得分:2)

使用bash脚本,并在脚本的第一个位置参数中添加所需标签:

#!/bin/bash
docker build --build-arg sw-ver=$1 -t my_image:$1 .

然后调整脚本:

script.sh 1.2.3

答案 1 :(得分:0)

您可以在构建期间使用build-args来更改环境变量。

docker build --build-arg sw_ver=4.5.6 -t my_image:1.2.3 .

Docker documentation about build-args