如何使用提交的哈希值构建Docker映像

时间:2019-07-05 10:19:12

标签: docker gitlab gitlab-ci continuous-delivery

我正在管理一个GitLab CICD管道,该管道分两个阶段构建Docker映像,现在我想在每个Docker映像中包含一个带有git的提交哈希值的标签(请参见label-schema's vcs-ref标签) 。

我注意到,GitLab已经为该信息提供了方便的env变量(请参见GitLab CI/CD environment variables中的CI_COMMIT_SHACI_COMMIT_SHORT_SHA),但是我不知道如何包括Docker映像中的那些env变量。有谁知道是否可以在标签中包含git的提交哈希?

2 个答案:

答案 0 :(得分:1)

您需要以build argument的身份传递提交。

例如,在Dockerfile中:

ARG CI_COMMIT_SHA
LABEL git-commit=$CI_COMMIT_SHA

构建时:

docker build --build-arg CI_COMMIT_SHA .

如果您不提供变量,例如--build-arg CI_COMMIT_SHA=abc123,它将使用相同名称的本地环境变量。

答案 1 :(得分:0)

在您的Dockerfile中,使用LABEL

LABEL commit_sha=YOUR_CI_COMMIT_SHA
LABEL commit_short_sha=YOUR_CI_COMMIT_SHORT_SHA

使用docker inspect从图像中获取标签

docker inspect --format='{{.Config.Labels.commit_sha}}' image:tag