Использование переменной ревизии в шаге сборки Docker - PullRequest
0 голосов
/ 15 января 2019

Попытка использовать переменную $(Rev:.r) в моих шагах по сборке докера (версия 1. *) для тегирования, и она, похоже, не работает. Я всегда получаю

2019-01-14T21: 42: 24.4149933Z ## [ошибка] неверный аргумент "wp / imagename: 0.6 $ (rev: .r)" для флага "-t, --tag": недопустимая ссылка формат 2019-01-14T21: 42: 24.4160700Z ## [ошибка] См. сборку докера --Помогите'. 2019-01-14T21: 42: 24.4274219Z ## [ошибка] / ошибка usr / bin / docker с кодом возврата: 125

Кажется, что не происходит подстановки переменных, и похоже, что она запускает ее с помощью опции Qualify name name и строчной буквы R. Может кто-нибудь еще использовать переменную $(Rev:.r)?

Неважно, где я пытаюсь использовать эту переменную, я могу использовать ее в параметре «Имя изображения» или «Аргументы», и это выдает мне ту же ошибку.

-t wp/imagename:0.6$(Rev:.r)

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Вы не можете получить только «номер редакции» без разбора, он не хранится где-то как отдельное поле. Часть $(Rev:.r) инструктирует DevOps Azure придумать первый номер, который делает номер сборки уникальным (и, в этом конкретном примере, поставить точку перед ним). Доступен только окончательный номер сборки.

При обходном решении добавьте $(Rev:.r) в конце вашего номера сборки (если его там нет). добавьте задачу скрипта PowerShell (вы можете сделать это встроенным в PowerShell) перед задачей Docker и поместите этот код:

$buildNumber = $Env:BUILD_BUILDNUMBER
$revision= $buildNumber.Substring($buildNumber.LastIndexOf('.') + 1)
Write-Host ("##vso[task.setvariable variable=revision;]$revision")

В вашем докере используйте переменную $revision:

-t wp/imagename:0.6$(revision)
0 голосов
/ 15 января 2019

Мне удалось распознать его только в разделе Формат номера сборки под опциями. Если вы используете это как номер сборки, можете ли вы вместо этого просто указать номер сборки, а затем ссылаться на него с помощью $ (Build.BuildNumber)?

...