如何在Dockerfile中添加git提交哈希或任何其他动态推断值。
LABEL vcs-ref=$(git rev-parse --short HEAD)
像这样?
1tuwyuhd1#
我终于找到了,使用docker build --build-arg vcs-ref=$(git rev-parse --short HEAD)同时建造。但必须初始化Dockerfile中vcs-ref的变量
docker build --build-arg vcs-ref=$(git rev-parse --short HEAD)
ARG vcs-ref=0 ENV vcs-ref=$vcs-ref
lb3vh1jj2#
对于像我这样必须在Windows CMD中实现这一点的可怜虫来说,特别是对于那些通过NPM这样做的人来说,这里有一个可行的方法:
git rev-parse --short HEAD > tmpCommitFile && set /p GIT_COMMIT= < tmpCommitFile && del tmpCommitFile && docker build --build-arg vcs-ref=%GIT_COMMIT%
这结合了git rev-parse HEAD,this answer的使用,以了解如何将CMD中的命令输出读取到变量中,最后如何将其作为arg传递,如这里的另一个答案所示。CMD使这比预期的更具挑战性。如果在Docker之前有一个抽象层,则可以将%GIT_COMMIT%作为参数提供给构建脚本的任何部分。
git rev-parse HEAD
%GIT_COMMIT%
2条答案
按热度按时间1tuwyuhd1#
我终于找到了,
使用
docker build --build-arg vcs-ref=$(git rev-parse --short HEAD)
同时建造。
但必须初始化Dockerfile中vcs-ref的变量
lb3vh1jj2#
对于像我这样必须在Windows CMD中实现这一点的可怜虫来说,特别是对于那些通过NPM这样做的人来说,这里有一个可行的方法:
这结合了
git rev-parse HEAD
,this answer的使用,以了解如何将CMD中的命令输出读取到变量中,最后如何将其作为arg传递,如这里的另一个答案所示。CMD使这比预期的更具挑战性。如果在Docker之前有一个抽象层,则可以将
%GIT_COMMIT%
作为参数提供给构建脚本的任何部分。