Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Revision Variable in Docker Build Step

Trying to use the $(Rev:.r) variable in my docker build steps (version 1.*) for tagging and it doesn't seem to work. I always get

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 ##[error]See 'docker build --help'. 2019-01-14T21:42:24.4274219Z ##[error]/usr/bin/docker failed with return code: 125

No variable substitution seems to be happening and it looks like it's running it through with the Qualify image name option and lower-casing the R. Can anyone else use the $(Rev:.r) variable?

Doesn't matter where I try using that variable, i can use it in the Image Name option or the Arguments option and it gives me the same error.

-t wp/imagename:0.6$(Rev:.r)
like image 998
dev null Avatar asked Mar 13 '26 22:03

dev null


1 Answers

You can't get just "the revision number" without parsing, it is not stored as a separate field somewhere. The $(Rev:.r) portion instructs Azure DevOps to come up with the first number that makes the build number unique (and, in that specific example, put a dot in front of it). Only the final build number is available.

At workaround, add a the $(Rev:.r) in the end of your build number (if it not there). add a PowerShell script task (you can do it inline PowerShell) before the Docker task and put this code:

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

In your docker use the $revision variable:

-t wp/imagename:0.6$(revision)
like image 186
Shayki Abramczyk Avatar answered Mar 15 '26 19:03

Shayki Abramczyk



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!