如何让 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 图像标签 latest
和 v0.13.5
就像两个 git 标签都指向同一个提交。 Docker Hub 不应该也这样工作吗?如果有人试图拉取 latest
,他们会拉取完全相同的标记为 v0.13.5
的图像吗?我知道如何 pull/re-tag/push,但同样,似乎必须有某种方法让 Docker Hub 自动执行此操作。
Latest
只是“没有指定特定 tag/version 的 运行 的最后一个 build/tag”。
如果你推送一个标记的图像,它不会替换当前标记为最新的图像。如果您仅推送标记图像,则不会添加 latest
标记。
Docker 集线器上的自动化构建正在为主 b运行ch 自动添加 latest
标签。
只要一点点魔法,Docker 集线器 就可以 做到这一点! Pablo Chico de Guzmán helped me out.
步骤:
- 添加名为
hooks/post_push
的文件
- 使
hooks/post_push
可执行,提交并推送
- 删除 "Branch" 构建,但保留 "Tag" 构建
现在,我推送的任何标签(例如 git push --tags
)都会触发自动构建,同样的图像也会被赋予 latest
标签。
Here's the change I had to make 所以最近的 "vX.Y" 标记 meonkeys/syncthing
图像也被标记 latest
.
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 图像标签 latest
和 v0.13.5
就像两个 git 标签都指向同一个提交。 Docker Hub 不应该也这样工作吗?如果有人试图拉取 latest
,他们会拉取完全相同的标记为 v0.13.5
的图像吗?我知道如何 pull/re-tag/push,但同样,似乎必须有某种方法让 Docker Hub 自动执行此操作。
Latest
只是“没有指定特定 tag/version 的 运行 的最后一个 build/tag”。
如果你推送一个标记的图像,它不会替换当前标记为最新的图像。如果您仅推送标记图像,则不会添加 latest
标记。
Docker 集线器上的自动化构建正在为主 b运行ch 自动添加 latest
标签。
只要一点点魔法,Docker 集线器 就可以 做到这一点! Pablo Chico de Guzmán helped me out.
步骤:
- 添加名为
hooks/post_push
的文件
- 使
hooks/post_push
可执行,提交并推送 - 删除 "Branch" 构建,但保留 "Tag" 构建
现在,我推送的任何标签(例如 git push --tags
)都会触发自动构建,同样的图像也会被赋予 latest
标签。
Here's the change I had to make 所以最近的 "vX.Y" 标记 meonkeys/syncthing
图像也被标记 latest
.