如何让Docker集线器为“最新”和“vX.Y”使用相同的映像?

Docker Hub从这个源代码 仓库为我创build一个Syncthing镜像 。

我标记了最新的提交 v0.13.5,但是Docker构build了两次: 一次是latest , 一次是v0.13.5 。

为什么? 应该不是能够弄清楚源是一样的吗? 我只是在我的Dockerfile中做一些愚蠢的事情 ,打破caching? 有什么方法我需要暗示Docker Hub,这应该是两个具有相同校验和但不同标签的图像?

我正在考虑两个Docker镜像标记latestv0.13.5就像两个git标记都指向同一个提交。 Docker Hub不应该这样工作吗? 如果有人试图拉latest他们会拉完全相同的图像标记v0.13.5 ? 我知道如何拉/重标签/推,但似乎有一些方法可以让Docker Hub自动执行此操作。

构build设置 :

meonkeys / syncthing构建设置的截图

Latest只是“没有指定特定标签/版本而运行的最后一个版本/标签”。

如果您推送标记的图像,它不会replace标记为最新的当前图像。 如果只推送标记的图像,则不会添加latest标记。

Docker Hub上的自动构build是为主分支自动添加latest标记。

有了一点魔力,Docker Hub 可以做到这一点! 巴勃罗·奇科·德·古兹曼 帮助我 。

脚步:

  1. 添加一个名为hooks/post_push的文件
  2. 使hooks/post_push可执行,提交和推送
  3. 删除“分支”版本,但保留“标签”版本

现在,我推送的任何标签(例如, git push --tags )都会触发一个自动构build,同样的图像也会被赋予latest标签。

这是我必须做的改变,所以最近的“vX.Y”标记的meonkeys/syncthing图像也被标记为latest

Docker Hub的屏幕截图为我的同步映像构建设置