我需要一点帮助。 标记 docker 图像的最佳选择是什么。我正在寻找制作 bash 脚本。这是推荐的还是有任何不同的解决方案? 我想添加一种方法来标记由 jenkins 构建步骤生成的 docker 图像。 我需要自动增加 BuildNumber,但要手动设置 MajorVersion 和 MinorVersion。
我找不到与此相关的任何示例。你能给我提供任何例子来管理我的版本号吗?
最佳答案
根据我的经验,使用内部版本号标记图像作为图像“版本”的一部分并不是一个很好的做法。 As stated in SemVer ,版本号的第三部分是“Patch”,代表非破坏性修复。
仅添加内部版本号作为补丁版本的问题在于您不一定代表每个版本都有一个补丁。例如,假设您正在修复(将作为补丁版本发布)。但是你没有在第一次提交/推送到你的工作分支时正确地修复。第一个构建已经是构建号增量,其他开发人员向其他分支的任何其他推送也是如此。这完全取决于您的 CI 设置方式。
如果您需要放置内部版本号,那么您可以使用您的 CI 内部版本号(我认为所有 CI 解决方案都提供)并将它们作为语义版本中的第四个元素添加到您的标签中(例如:2.4.1-2312
,其中 2312
是内部版本号),一旦它发布,您可以将标签添加到 2.4.2
.
如果你想符合 docker 的惯例,你还应该将 2.4.2
标记为 2.4
、2
和 最新的
,如果你要发布它的话。
我最后的建议是始终使用您正在构建的提交的完整 SHA 标记图像,因为没有更简单的方法可以将图像与代码库中的时间点匹配。
关于docker - 标记 Docker 图像 (SemVer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55044480/