Deployment 如何将版本控制系统修订与Docker映像版本同步?

Deployment 如何将版本控制系统修订与Docker映像版本同步?,deployment,version-control,continuous-integration,docker,Deployment,Version Control,Continuous Integration,Docker,将Docker注册表中的Docker映像版本与Git(例如)修订版关联起来的常见常规模式是什么?所以,存储库的用户将能够在任何修订时切换,并重新创建对应于该特定修订的环境 例如,我有一个带有project和integration server的存储库,它可以为存储库中的每个提交自动构建Docker映像。如何将这些映像绑定到相应的存储库提交 使用Docker,您有两个不同的存储库—一个项目和一个Docker映像—因此它们必须同步,但推荐的工作流是什么 Docker Hub支持两种类型的回购协议,您

将Docker注册表中的Docker映像版本与Git(例如)修订版关联起来的常见常规模式是什么?所以,存储库的用户将能够在任何修订时切换,并重新创建对应于该特定修订的环境

例如,我有一个带有project和integration server的存储库,它可以为存储库中的每个提交自动构建Docker映像。如何将这些映像绑定到相应的存储库提交


使用Docker,您有两个不同的存储库—一个项目和一个Docker映像—因此它们必须同步,但推荐的工作流是什么

Docker Hub支持两种类型的回购协议,您还没有说明使用哪种回购协议。在这两种情况下,我建议您将git修订版或标记名放在图像名称的版本部分,例如“account/repo:version

手动存储库(
docker push
) 对于手动构建,您应该
docker标记
每个带有git修订版的版本。这是推荐的方法,因为它提供了最多的控制,并且可以在构建系统上实现自动化

自动生成存储库 对于Docker Hub上的自动生成,您需要手动为要生成的每个修订或标记创建一个新条目。这需要转到Hub web UI并为您的回购创建新的构建配置,如下图所示。目前没有API允许您更改repo上的构建设置,当您向Git Hub repo添加标记时,自动构建系统也不会自动添加Docker Hub标记

注意目前(2014-10-07)存在一个缺陷,即自动生成实际上不是从源代码存储库中的标记生成的,而是从主分支的负责人生成的。状态显示在上


以下是如何将生成配置添加到自动生成:


这是一条路。“对于自动构建,您需要手动创建新构建”-您的意思是“手动”?你能一步一步地描述一下吗?为什么不自动化映像构建过程呢?我认为Andy的意思只是说您在自动化构建过程中运行
docker build
。这在很大程度上取决于您实际想要构建什么。也许你的构建过程构建了每一个git推送,或者构建了一组git标记,等等。添加了“手动创建新构建”的屏幕截图,并做了一些其他澄清和关于开放bug的警告。@Andy哦,我明白了。顺便说一下,谢谢你的详细回答。经过一番思考,我得出结论,用SCM修订版标记Docker图像是错误的,因为图像不能随每次修订而更改。显然,每个图像都有自己的修订行,因此必须单独进行版本控制。我认为最好只是在
Dockerfile
中手动标记每个图像,如
1.0
1.1
。但是,
Dockerfile
似乎不支持这种版本控制。