标记Docker Hub版本的最佳实践是什么?

我有一个运行应用程序的Docker Hub容器。 通常它会通过克隆源git repo来运行应用程序,但是如果我想运行特定的版本,应用程序已经标记了各种版本。 比如我可以做一个

git clone https://github.com/author/application.git git checkout release-1.0.0 

作为Docker Hub维护者,我想用容器镜像软件的版本。 除了手动发布发布之外,还有其他的select吗?

现在我的Dockerfile包含这样的东西:

 ENV APP_VER=2.0.0 RUN git clone ...; git checkout ${APP_VER} 

在这个例子中,我会保留一个docker文件的标记分支,将APP_VER设置为2.1.0,然后Docker Hub支持这个,但是如果我对repo进行了更改,我不清楚该如何更改Dockerfile的每个分支。

您应该可以通过Docker Hub的自动构build和构build设置来进行描述,设置Github标记名称Docker标记名称之间的模式匹配。 您可以使用通配符和引用源分支/标记名称的variables{sourceref}`“。

每当你用一个与Github标签相匹配的Docker标签推送一个新的图像时,它将拉动匹配的Dockerfile – 之前的标签将保持不变。 所以有人可以通过使用标签作为参考拉你的老版本的Docker镜像和匹配的Github代码:

 ENV APP_VER=2.1.0 RUN git clone ... app.git; git -C app checkout ${APP_VER} 

在这种情况下,它假设你设置了Docker Hub来匹配值,每个标签(Docker镜像和Github)都是2.1.0

我不太清楚“每个分支”是什么意思,这可能是混乱的一部分,特别是如果你习惯了SVN。 在git中,标签并不是绑定到一个分支,而是一个特定的提交(或时间点),所以当你检索这个标签时,它总是会使用与提交时相同的代码版本制作。 (通常与发布时间相同)