docker - 标记 Docker 图像 (SemVer)

标签 docker kubernetes dockerfile

我需要一点帮助。 标记 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.42最新的,如果你要发布它的话。

我最后的建议是始终使用您正在构建的提交的完整 SHA 标记图像,因为没有更简单的方法可以将图像与代码库中的时间点匹配。

关于docker - 标记 Docker 图像 (SemVer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55044480/

相关文章:

docker - 如何在docker-compose服务中更新celery worker ,但保持长时间运行的任务处于事件状态,直到完成

macos - 如何在Docker容器中获得root特权?

amazon-web-services - 有没有办法将普通的AWS Lambda函数容器化?

go - 如何通过 kubernetes go-client 获取 pod 资源使用情况?

.net - 这个项目不知道如何运行配置文件 docker

docker - 如何确定性地构建 Docker 镜像?

docker - 仅在Bluemix上为UnknownHostException

kubernetes - 如何在Kubernetes集群级别查找可用资源?

python - 为什么在 Dockerfile 中使用 RUN 安装自定义 python 包不起作用?

Docker compose 和 dockerfile/.htaccess 问题