4af9f4edac
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.
39 lines
1.2 KiB
PowerShell
39 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
|