PowerShell/docker/createManifest.ps1
Travis Plunk 4af9f4edac
fix create docker manifest script to work with more complex tags and with repeated use (#6852)
fix create docker manifest script to work with more complex tags and with repeated use
- add characters to validation pattern
- purge manifest after pushing as there is no other way to delete the manifest.
2018-05-10 14:36:47 -07:00

40 lines
1.2 KiB
PowerShell

# Used to create a container manifest.
# Prereq: you must login to $ContainerRegistery before running this script
# default scenarios is to build a `latest` tag which will point to the `ubuntu-16.04` tag for linux
# and the `windowsservercore` tag for windows
param(
[parameter(Mandatory)]
[string]
$ContainerRegistry,
[ValidateNotNullOrEmpty()]
[ValidatePattern('^[abcdefghijklmnopqrstuvwxyz\-0123456789\.]+$')]
[string]
$ManifestTag = 'latest',
[ValidateNotNullOrEmpty()]
[ValidatePattern('^[abcdefghijklmnopqrstuvwxyz\-0123456789\.]+$')]
[string]
$Image = 'powershell',
[ValidateNotNullOrEmpty()]
[ValidatePattern('^[abcdefghijklmnopqrstuvwxyz\-0123456789\.]+$')]
[string[]]
$TagList = ('ubuntu-16.04', 'windowsservercore')
)
$manifestList = @()
foreach($tag in $TagList)
{
$manifestList += "$ContainerRegistry/${Image}:$tag"
}
# Create the manifest
docker manifest create $ContainerRegistry/${Image}:$ManifestTag $manifestList
# Inspect (print) the manifest
docker manifest inspect $ContainerRegistry/${Image}:$ManifestTag
# push the manifest
docker manifest push --purge $ContainerRegistry/${Image}:$ManifestTag