可能的答案
我不认为
Dockerfile
语法将支持当前开箱即用的内容。我建议你创建一个简单的
bash
脚本为您进行下载/重命名,然后
ADD
静态文件指向
文档文件
.
例子
-
拉你的版本文件,例如。
ADD http://example.com/latest-version.txt
-
添加/运行一些简单的bash脚本/oneliner来处理您的版本文件(请参阅下面的入门建议)
-
此脚本读取
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
-
等
-
因为所有相关的软件包都保存到静态文件名中,所以您可以将其硬编码到dockerfile中,例如。
-
ADD /tmp/package1.tar.gz
-
ADD /tmp/package2.tar.gz
-
等
结束的想法
我建议你雇用某种
Configuration Management
(厘米)使你的生活更容易,因为这种解决问题的方法会很快变得混乱。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