我有一个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
内的标签号并将其用作变量?
答案 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 .