我正在管理一个Docker管道,它分几个阶段构建GitLab镜像,现在我想在每个Docker镜像中包含一个带有git散列的标签(参见label-schema's vcs-ref
label)。
我注意到GitLab已经为环境变量提供了方便的信息(参见Docker中的CI_COMMIT_SHA
和CI_COMMIT_SHORT_SHA
),但我不知道如何将这些环境变量中提供的信息包含在Docker镜像中。有没有人知道是否可以在标签中包含git的提交散列?
发布于 2019-07-17 23:33:47
您需要将提交作为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
,那么它将使用相同名称的本地环境变量。
发布于 2019-07-05 18:33:02
在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
https://stackoverflow.com/questions/56901150
复制相似问题