如何让 Docker 集线器对 "latest" 和 "vX.Y" 使用相同的图像?

How do I make a Docker hub use the same image for "latest" and "vX.Y"?

Docker Hub 建立一个 Syncthing image for me from this source repo.

我标记了 latest commit v0.13.5, but Docker built it twice: once for latest and once for v0.13.5

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

我在想两个 Docker 图像标签 latestv0.13.5 就像两个 git 标签都指向同一个提交。 Docker Hub 不应该也这样工作吗?如果有人试图拉取 latest,他们会拉取完全相同的标记为 v0.13.5 的图像吗?我知道如何 pull/re-tag/push,但同样,似乎必须有某种方法让 Docker Hub 自动执行此操作。

Build settings:

Latest 只是“没有指定特定 tag/version 的 运行 的最后一个 build/tag”。

如果你推送一个标记的图像,它不会替换当前标记为最新的图像。如果您仅推送标记图像,则不会添加 latest 标记。

Docker 集线器上的自动化构建正在为主 b运行ch 自动添加 latest 标签。

只要一点点魔法,Docker 集线器 就可以 做到这一点! Pablo Chico de Guzmán helped me out.

步骤:

  1. 添加名为 hooks/post_push
  2. 的文件
  3. 使hooks/post_push可执行,提交并推送
  4. 删除 "Branch" 构建,但保留 "Tag" 构建

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

Here's the change I had to make 所以最近的 "vX.Y" 标记 meonkeys/syncthing 图像也被标记 latest.