如何使用gitversion Docker显示变量

如何使用gitversion Docker显示变量,docker,jenkins,devops,gitversion,Docker,Jenkins,Devops,Gitversion,我可以通过以下方法成功获取完整的json字符串: docker run --rm -v `pwd`:`pwd` gittools/gitversion-dotnetcore:linux-4.0.0 `pwd` -output json 这些输出类似于: { "Major":0, "Minor":1, "Patch":0, "SemVer":"0.1.0-dev-2.1", . . . "CommitsSinceVersionSource":20, "CommitsSin

我可以通过以下方法成功获取完整的json字符串:

docker run --rm -v `pwd`:`pwd` gittools/gitversion-dotnetcore:linux-4.0.0 `pwd` -output json
这些输出类似于:

{
  "Major":0,
  "Minor":1,
  "Patch":0,
  "SemVer":"0.1.0-dev-2.1",
.
.
.
  "CommitsSinceVersionSource":20,
  "CommitsSinceVersionSourcePadded":"0020",
  "CommitDate":"2020-05-28"
}
由于我只对
SemVer
变量感兴趣,因此我尝试将
-showvariable-FullSemVer
用于:

docker run --rm -v `pwd`:`pwd` gittools/gitversion-dotnetcore:linux-4.0.0 `pwd` -output json -showvariable FullSemVer
但是它失败了,有一个很长很糟糕的错误日志

INFO [05/28/20 18:23:12:10] End: Loading version variables from disk cache (Took: 76.31ms)
ERROR [05/28/20 18:23:12:13] An unexpected error occurred:
System.NotImplementedException: The method or operation is not implemented.

我想知道是否有办法将
-showvariable
标志与
gitversion
Docker容器一起使用?

我认为问题在于传递给gitversion的路径参数
pwd
将为您提供主机上的工作目录,而不是容器中的工作目录。不幸的是,GitVersion没有意识到它在容器中执行,因此需要为它提供卷目录
/repo
,作为计算其版本号的路径。这是我们在6版中应该考虑的变化。

我也记不起什么时候实现了
-showvariable
,所以为了安全起见,您应该尝试使用一个。我还可以推荐使用
alpine
容器,因为它是我们提供的最小的容器(只有83.9MB)。这项工作:

docker运行\
--rm\
--卷“$(pwd):/repo”\
gittools/gitversion:5.3.4-linux-alpine.3.10-x64-netcoreapp3.1\
/回购\
-输出json\
-显示变量FullSemVer