1

使用 将包发布到 Github 包注册表时docker push,该包似乎链接到主分支上的最新提交。但是,我目前正在不同的分支上或特定标签上构建我的包。有没有办法将发布的图像绑定到特定的 git 提交,以便链接到图像的源代码资产是正确的?

4

2 回答 2

1

帮助页面“ Configuring Docker for use with GitHub Package Registry ”提到:

将图像推送到 GitHub 包注册表:

$ docker push docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION

因此,只要您已经从任何您想要的 Git 提交构建并标记了您的图像,该docker push步骤就独立于所述 Git 提交:它仅依赖于您构建的内容。

您可以将变量添加到您的docker build以包含 Git 信息。请参阅Scott Lowe
的 “如何使用 Git 提交信息标记 Docker 映像

docker build -t flask-local-build --build-arg GIT_COMMIT=$(git log -1 --format=%h) .
docker inspect flask-local-build | jq '.[].ContainerConfig.Labels'
于 2019-08-21T04:33:07.897 回答
0

每当您使用 docker build 命令创建映像时,它都会在目录中进行所有更改。如果您指向 master,那么它将从 master 构建它。

为了解决这个问题,你可能有单独的构建目录,或者你编写一个小脚本来做同样的事情。例如,您可以编写一个 shell 脚本,它将您的存储库克隆到临时文件夹并从特定分支中提取最新更改,然后创建并将构建推送到注册表。

于 2019-08-21T06:09:53.083 回答