我正在创建一个Dockerfile,部分过程是CONVERT(VARCHAR(30), CAST(CONVERT(DATE,OEO.ScheduledShipDate+'23:59:00') AS DATETIMEOFFSET(2)), 127)
最新版本的软件包,可以作为文本文件下载。
ADD
ADD http://example.com/latest-version.txt
搜索字符串package1 = AB1.0.0
package2 = 32.4132
package3 = 123.456
,将变量package1
设置为packageVersion
并将AB1.0.0
设置为文件。
ADD
我可以在Dockerfile中实现这一点,还是需要Bash脚本的帮助?
答案 0 :(得分:0)
我认为Dockerfile
语法不会支持您现在想要的内容。我建议您创建一个简单的bash
脚本来为您下载/重命名,然后只需ADD
指向Dockerfile
的静态文件指针。
ADD http://example.com/latest-version.txt
latest-version.txt
文件并下载相关文件,例如:
wget http://example.com/package1.${packageVersion1}.tar.gz -O /tmp/package1.tar.gz
wget http://example.com/package2.${packageVersion2}.tar.gz -O /tmp/package2.tar.gz
ADD /tmp/package1.tar.gz
ADD /tmp/package2.tar.gz
我建议您使用某种Configuration Management(CM)来让您的生活更轻松,因为这种解决问题的方法很快就会变得混乱。 CM具有以下优势:不仅可以提供更多结构来解决这样的问题,而且还可以在构建工件时提供另外两个重要属性,即idempotence
和convergence
。
while IFS='' read -r line || [[ -n "$line" ]]; do
NAME=`echo $line | cut -d '=' -f1`; VERSION=`echo $line | cut -d '=' -f2`; echo $NAME; echo $VERSION;
done < latest-version.txt