绑定Docker映像以更正Github软件包注册表中的Github提交

时间:2019-08-21 03:02:23

标签: git docker github github-package-registry

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

2 个答案:

答案 0 :(得分:1)

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

  

将图像推送到GitHub Package Registry:

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

只要您已经 已构建好并从所需的任何Git提交中标记了图像,docker push步骤就独立于上述Git提交:它完全取决于您拥有的内容内置。

您可以将变量添加到docker build中以包含Git信息。
请参见How to Tag Docker Images with Git Commit Information中的“ Scott Lowe

docker build -t flask-local-build --build-arg GIT_COMMIT=$(git log -1 --format=%h) .
docker inspect flask-local-build | jq '.[].ContainerConfig.Labels'

答案 1 :(得分:0)

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

要解决此问题,您可能具有单独的单独构建目录,或者编写了小型脚本来执行此操作。例如,您可以编写一个shell脚本,该脚本将您的存储库克隆到temp文件夹,并从特定分支中提取最新更改,然后创建并将构建推送到注册表。