Как показать переменную с помощью gitversion Docker - PullRequest
1 голос
/ 28 мая 2020

Я могу успешно получить полную строку 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 переменная I попробуйте использовать -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?

1 Ответ

1 голос
/ 29 мая 2020

Я думаю, проблема в аргументе пути, переданном GitVersion. pwd предоставит вам рабочий каталог на вашем хосте, а не в контейнере. К сожалению, GitVersion не знает, что он выполняется в контейнере, поэтому ему необходимо указать каталог тома /repo в качестве пути для вычисления номера версии. Это то, что мы должны рассмотреть в версии 6.

Я также не могу вспомнить, когда -showvariable был реализован, поэтому на всякий случай вам следует попробовать более новую версию нашего Docker контейнеры . Я также могу порекомендовать использовать контейнер alpine, так как он самый маленький из предлагаемых нами (всего 83,9 МБ). Это работает:

docker run \
    --rm \
    --volume "$(pwd):/repo" \
    gittools/gitversion:5.3.4-linux-alpine.3.10-x64-netcoreapp3.1 \
    /repo \
    -output json \
    -showvariable FullSemVer
...