如何让Docker集线器为“最新”和“vX.Y”使用相同的映像?
Docker Hub从这个源代码 仓库为我创build一个Syncthing镜像 。
我标记了最新的提交 v0.13.5,但是Docker构build了两次: 一次是latest
, 一次是v0.13.5 。
为什么? 应该不是能够弄清楚源是一样的吗? 我只是在我的Dockerfile中做一些愚蠢的事情 ,打破caching? 有什么方法我需要暗示Docker Hub,这应该是两个具有相同校验和但不同标签的图像?
我正在考虑两个Docker镜像标记latest
和v0.13.5
就像两个git标记都指向同一个提交。 Docker Hub不应该这样工作吗? 如果有人试图拉latest
他们会拉完全相同的图像标记v0.13.5
? 我知道如何拉/重标签/推,但似乎有一些方法可以让Docker Hub自动执行此操作。
构build设置 :
Latest
只是“没有指定特定标签/版本而运行的最后一个版本/标签”。
如果您推送标记的图像,它不会replace标记为最新的当前图像。 如果只推送标记的图像,则不会添加latest
标记。
Docker Hub上的自动构build是为主分支自动添加latest
标记。
有了一点魔力,Docker Hub 可以做到这一点! 巴勃罗·奇科·德·古兹曼 帮助我 。
脚步:
- 添加一个名为
hooks/post_push
的文件 - 使
hooks/post_push
可执行,提交和推送 - 删除“分支”版本,但保留“标签”版本
现在,我推送的任何标签(例如, git push --tags
)都会触发一个自动构build,同样的图像也会被赋予latest
标签。
这是我必须做的改变,所以最近的“vX.Y”标记的meonkeys/syncthing
图像也被标记为latest
。