2016-08-22 182 views
0

我试图实现与maven提供的SNAPSHOT版本相同的机制。 基本上,每当我有一个Dockerfile的开发,我想能够在我的私人注册表中创建临时版本。Docker开发版本/快照

我可以创建一个标签并强制推送这个标签,但我宁愿在给定标签的注册表中保留一个版本。

如果Docker镜像A依赖于B(例如在1.2.SNAPSHOT上),那么最新的1.2.x标签将被拉出。

图像版本中是否存在一个特殊的关键字,可以执行我实际尝试实现的功能?

希望这是很清楚:)

+0

不知道我是否有正确的理解。例如,你有标签'1.1.1','1.1.2','1.1.3',并且已经有一个新的主要版本'1.2'以及一些次要版本。然后,如果你在'1.1'版本中发现了一些问题,那么你想要建立一个标签为'1.1.4'的新版本(我们称之为“补丁”),并且你希望所有更多的主要版本(例如'1.2。')会受到这个“补丁”的影响吗? – oakymax

+0

我不禁想到这里的正确答案是每次构建两次,一次是'1.1.x',一次是''命名标记。 '1.1.x'永远不会改变,但''将会改变。 – Matthew

回答

0

我没有使用过,但它听起来像是被用于Maven的快照指示开发版本。因此,新版本总是被检查并提取。

为了在docker中获得类似的行为,我相信你需要检查每个构建的新基础镜像。这是在码头建设中的一个选项:--pull

docker build --pull -t myimage . 
+0

你是对的,快照是发展的verisons。但是,它们并不总是从远程注册表/存储库中获取。仅当远程源文件较新时,才会拉动版本 –

+0

有用的知识 - 在我的测试中'--pull'的工作方式相同 - 如果本地版本最新,它将跳过下载。 –