在Docker构建步骤中使用修订变量

在Docker构建步骤中使用修订变量,docker,azure-devops,Docker,Azure Devops,试图在我的docker构建步骤(版本1.*)中使用$(Rev:.r)变量进行标记,但似乎不起作用。我总是很紧张 2019-01-14T21:42:24.4149933Z###[错误]无效参数 “wp/imagename:0.6$(修订版:.r)”对于“-t,--tag”标志:无效引用 格式2019-01-14T21:42:24.4160700Z###[错误]请参阅“docker构建” --“救命”。2019-01-14T21:42:24.4274219Z##[错误]/usr/bin/docker

试图在我的docker构建步骤(版本1.*)中使用
$(Rev:.r)
变量进行标记,但似乎不起作用。我总是很紧张

2019-01-14T21:42:24.4149933Z###[错误]无效参数 “wp/imagename:0.6$(修订版:.r)”对于“-t,--tag”标志:无效引用 格式2019-01-14T21:42:24.4160700Z###[错误]请参阅“docker构建” --“救命”。2019-01-14T21:42:24.4274219Z##[错误]/usr/bin/docker失败,返回代码:125

似乎没有发生变量替换,它似乎正在使用“限定图像名称”选项和小写字母R运行。其他人是否可以使用
$(Rev:.R)
变量

不管我在哪里尝试使用该变量,我可以在Image Name选项或Arguments选项中使用它,它会给我相同的错误

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

我只能在选项下的版本号格式部分识别它。如果将其用作内部版本号,是否可以在此处设置内部版本号,然后使用$(build.BuildNumber)进行引用?

如果不进行解析,就无法仅获取“修订号”,它不会存储在某个单独的字段中。
$(Rev:.r)
部分指示Azure DevOps提供使构建编号唯一的第一个编号(在该特定示例中,在其前面放置一个点)。只有最终版本号可用

在解决方法中,在构建编号的末尾添加一个
$(Rev:.r)
(如果没有)。在Docker任务之前添加一个PowerShell脚本任务(您可以内联使用PowerShell),并放置以下代码:

$buildNumber = $Env:BUILD_BUILDNUMBER
$revision= $buildNumber.Substring($buildNumber.LastIndexOf('.') + 1)
Write-Host ("##vso[task.setvariable variable=revision;]$revision")
在docker中,使用
$revision
变量:

-t wp/imagename:0.6$(revision)