将git命令的结果作为参数传递给docker build

eyh26e7m  于 12个月前  发布在  Git
关注(0)|答案(1)|浏览(135)

我需要将git commit hash传递给docker build,这样它就可以作为参数传递给dotnet build,作为版本控制包的后缀。
dockerfile中,我有这样的东西:

FROM ...

ARG GIT_COMMIT
ENV GIT_COMMIT=$GIT_COMMIT

...

RUN dotnet build -c Release --no-restore /p:SourceRevisionId=${GIT_COMMIT}

字符串
我尝试按如下方式传递GIT_COMMIT参数:

docker build --build-arg GIT_COMMIT=$(git rev-parse HEAD) .


但这会导致以下错误:

"docker build" requires exactly 1 argument.
See 'docker build --help'.

Usage:  docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile


我想要的是哈希的短版本,所以我需要将--short传递给git

docker build --build-arg GIT_COMMIT=$(git rev-parse --short HEAD) .


在这种情况下,我得到以下结果:

unknown flag: --short
See 'docker build --help'.


我要怎么做才能让它工作?

ut6juiuv

ut6juiuv1#

看起来您正在使用cmd.exe。您可以使用:用途:

for /F "usebackq delims=" %A in (`git rev-parse HEAD`) do docker build --build-arg GIT_COMMIT=%A .

字符串
请参阅this answer了解更多信息。

相关问题