docker - 在 Docker 构建步骤中使用修订变量
问题描述
尝试$(Rev:.r)
在我的 docker 构建步骤(版本 1.*)中使用该变量进行标记,但它似乎不起作用。我总是得到
2019-01-14T21:42:24.4149933Z ##[error]invalid argument "wp/imagename:0.6$(rev:.r)" for "-t, --tag" flag: invalid reference format 2019-01-14T21 :42:24.4160700Z ##[错误]参见'docker build --help'。2019-01-14T21:42:24.4274219Z ##[error]/usr/bin/docker 失败,返回码:125
似乎没有发生变量替换,看起来它正在使用 Qualify 图像名称选项和小写 R 运行它。其他人可以使用该$(Rev:.r)
变量吗?
不管我在哪里尝试使用该变量,我都可以在 Image Name 选项或 Arguments 选项中使用它,它会给我同样的错误。
-t wp/imagename:0.6$(Rev:.r)
解决方案
如果不进行解析,您将无法仅获得“修订号”,它不会作为单独的字段存储在某处。该$(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")
在你的码头使用$revision
变量:
-t wp/imagename:0.6$(revision)
推荐阅读
- json - JOLT - 将嵌套子项合并到父项中
- wpf - TabItem 的内容在设置为折叠/隐藏时保持可见
- php - 使用 lavary/laravel-menu 来自 laravel 数据库的动态菜单
- c++ - 如何在 protoc 插入点(Protobuf)中插入包含?
- azure - Azure API 管理自动化
- lwjgl - LWJGL glDrawArrays 不绘制
- unit-testing - Polymer 1.x 单元测试间谍没有被调用
- angular - 无法绑定到“值”,因为它不是“ngx-select-dropdown”的已知属性
- python - Boto3 --> 修改 EC2 的实例以拥有多个安全组
- jenkins - 如何自动化 Jenkins 作业以在特定时间段内禁用自身然后启用自身?