Export-ToDockerRegistry.psm1
|
<#
.Synopsis Automatic Publish Tool (APT) .DESCRIPTION Export docker image into docker registry .EXAMPLE Export-ToDockerRegistry components system-api -Deploy .EXAMPLE Export-ToDockerRegistry components system-api -Type sapase -Deploy .NOTES Author: Imrich Szolik #> function Export-ToDockerRegistry { [CmdletBinding()] [Alias()] Param( #Registry root [string] [Parameter(Position=0, Mandatory=$true, HelpMessage="Main collection")] $Collection, # Component name [string] [Parameter(Position=1, Mandatory=$true, HelpMessage="Component name")] $Component, # Component tag [string] [Parameter(Position=2, Mandatory=$true, HelpMessage="Component tag")] $Tag, # Component type [string] [Parameter(Mandatory=$false, HelpMessage="Component type")] $Type, # Deploy to repository [switch] $Deploy, [string] [Parameter(Mandatory=$false, ValueFromPipelineByPropertyName=$false, HelpMessage="Docker registry")] $Registry ) Begin{ # if($null -eq $Registry -or $Registry -eq ''){ $Registry = "docker-registry.nuaktiv.dev" } # if ($Registry.EndsWith('/')) { $repository = "$($Registry)$($Collection)" } else{ $repository = "$($Registry)/$($Collection)" } # } Process{ # if($Component -ne '' -and $Tag -ne '' -and $Collection -ne '') { # if($null -eq $Type -or $Type -eq ''){ # if($Deploy.IsPresent){ Write-Host "### ADT DEPLOY $($Component):$Tag INTO $repository/$Component ###" } else{ Write-Host "### ADT TAG $($Component):$Tag ###" } # docker image tag "$($Collection)-$($Component):latest" "$repository/$($Component):latest" docker image tag "$($Collection)-$($Component):latest" "$repository/$($Component):$Tag" # if($Deploy.IsPresent){ docker push "$repository/$($Component):latest" docker push "$repository/$($Component):$Tag" } } else{ # if($Deploy.IsPresent){ Write-Host "### ADT DEPLOY $($Component):$Tag-$($Type) INTO $repository/$Component" } else{ Write-Host "### ADT TAG $($Component):$Tag-$($Type) ###" } # docker image tag "$($Collection)-$($Component):latest-$($Type)" "$repository/$($Component):latest-$($Type)" docker image tag "$($Collection)-$($Component):latest-$($Type)" "$repository/$($Component):$($Tag)-$($Type)" # if($Deploy.IsPresent){ docker push "$repository/$($Component):latest-$($Type)" docker push "$repository/$($Component):$($Tag)-$($Type)" } } } } End{ } } Export-ModuleMember -Function Export-ToDockerRegistry # SIG # Begin signature block # MIIIEwYJKoZIhvcNAQcCoIIIBDCCCAACAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDKLR4JVQXBEj5c # bYwO0vHDYPchQ8FS90KvVx+GNcUbo6CCBQ8wggULMIIC86ADAgECAgIApTANBgkq # hkiG9w0BAQsFADCBoDELMAkGA1UEBhMCU0sxETAPBgNVBAgTCFNsb3Zha2lhMRMw # EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpMb210ZWMuY29tMSswKQYDVQQD # EyJMb210ZWMuY29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MScwJQYJKoZIhvcN # AQkBFhhJbXJpY2guU3pvbGlrQGxvbXRlYy5jb20wHhcNMTkwMzI2MTUwNDQzWhcN # MzAwMTAxMDAwMDAwWjCBkzELMAkGA1UEBhMCU0sxETAPBgNVBAgTCFNsb3Zha2lh # MRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpMb210ZWMuY29tMR4wHAYD # VQQDExVMb210ZWMuY29tIFBvd2Vyc2hlbGwxJzAlBgkqhkiG9w0BCQEWGEltcmlj # aC5Tem9saWtAbG9tdGVjLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC # ggEBAL4n4nCHbkdrf09IHNFQ2P/z6I43GKScsFJOQHUMkRD3ALoUFL/URC9sW2fY # rqG5VkFAKhnM0VxeiICR53cAshNShjFf58PhaS973jtCoJcaugIVBVoFIuQ+gnNY # Jp2VdBbIPKMW4JjjZOxBEkHpMWmfitXKWGKeU68Qcn3oI6PO+YSztfXLe1NU+1GI # O3fA7E0vHVPUf/qWZXMYU5ElLQVm9AXbfX79mTgl76A57+OC6j+Aehkd2OPfUl4w # snox3fOyUAUA8iojeWh97PpXd/s+RkuxWdgsC4YSWDUjhZSzBkml9uerYqo9a+XA # b39dvkpK9TPl3q5HNBQMkCfp8bkCAwEAAaNaMFgwCQYDVR0TBAIwADALBgNVHQ8E # BAMCB4AwKwYDVR0lBCQwIgYIKwYBBQUHAwMGCisGAQQBgjcCARUGCisGAQQBgjcC # ARYwEQYJYIZIAYb4QgEBBAQDAgSwMA0GCSqGSIb3DQEBCwUAA4ICAQAJJapv9skY # jh5HTsJnqDdtqh7YOOXuA8g+DKBj+5gDEZE5V9VhAFVp8UJ9RoITGGIRTVId0lqc # LJiVSTHx305VW9aID8vo77kfrTyXvPXNIsTtHnPkkwH47+CoiY3IpPQLjUA/Q6Qd # qwINvvwom7/Wc+OoIqlPdJH5DbBrIy85dr6M/Lm3Rw2BolcTRwXTB3xAhweth78B # P6pbcAd32FdymkRopLIihuNs7g7ZR/Q/5803G+OiQIMRGyTvaQ+aQjJgFpkzp7NI # whzougfCOV47Sc89jEpUqw16i2UFfz2ywOlWUyYtue1S1PjM1ljgJfRo+e0wUnFp # gFQzXGF1bTYVaQ4e3nJleADfvqeXoH2AYeBTbz9BcogkkfURAC3iiob1bNs5jE1C # brEDCw6m/03k0oOmm3xQksXyAhBYuUkRwu9jd4y3FwZ/syDGLz3b6cY8o1YyINOO # A3B2r92shNt0rWhJu3v+qcIVmFQ0aKlhNNRoiVlQgJ7NgO0UV+vU2lgiscpUSxEt # xKN+450r49su06NA6zsyn3CELUmVkPyjx5fyizwt9KxVuYOUSEb32Y7QCffHJ1qt # F6SuQrKbgb/24y7cCDW6PDVRvPOySUlKu9sPykICDjvzXBvjYEILM7AmtYCIBGQg # imBsQvTEoXJXiwAOi1XNz3LxcjQHQ/ZM4zGCAlowggJWAgEBMIGnMIGgMQswCQYD # VQQGEwJTSzERMA8GA1UECBMIU2xvdmFraWExEzARBgNVBAcTCkJyYXRpc2xhdmEx # EzARBgNVBAoTCkxvbXRlYy5jb20xKzApBgNVBAMTIkxvbXRlYy5jb20gQ2VydGlm # aWNhdGlvbiBBdXRob3JpdHkxJzAlBgkqhkiG9w0BCQEWGEltcmljaC5Tem9saWtA # bG9tdGVjLmNvbQICAKUwDQYJYIZIAWUDBAIBBQCggYQwGAYKKwYBBAGCNwIBDDEK # MAigAoAAoQKAADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3 # AgELMQ4wDAYKKwYBBAGCNwIBFjAvBgkqhkiG9w0BCQQxIgQgNQ8RXUYzhGxZNoUx # kqfxHYIBEPzV0nz9I+f21IyURskwDQYJKoZIhvcNAQEBBQAEggEATqbb4IdaqhP1 # 4xsxLGrBwnNMNVwR1oE0amVi+nAjFuvNgmzuOFvfHEEnY/GCxVjTQu7tr4Slu0OJ # WOj/qEPEjyeRWcBNiNxhF5uXnx8/xejdRPBT/7AdOitNyatyZdtLJPDwXa2Hcixa # lE6OBNUEqekSplUuIP5jsG6r7u1BQaWtSgpGZYcPdDbwCMfgJ3vUJ700rfe8RrKx # 79F5HiGf8WbrY9dwI8aVXZhIxiiMNj3lViMSLM0+8R3/qz/CInFRGKp8Lf++p2Kv # 1D7RpHJB++fg2mO+d/MIY9D+PZk0FFQRZtrx2OtJscm+0RbjYmYU1WtDidUWq2zK # pycwkb7LTw== # SIG # End signature block |