编译镜像推送阿里云 pwsh 脚本

$ErrorActionPreference = "Stop"

$account = 'xxx@yeah.net'
$password = 'xxx'
$server = 'registry.cn-hangzhou.aliyuncs.com'
$tagName = 'apiservice:latest'
$imageName = "$server/x/$tagName"

function throwIfError([string]$name) {
    if(-not $?) { throw [Exception]::new("${name}失败") }
}

Write-Output "登录阿里云"
$password | docker login --username=$($account) $server  --password-stdin
throwIfError "登录阿里云"

Write-Output "开始编译"
docker build -t $tagName -f .\Dockerfile ..
throwIfError "编译"

try
{
    Write-Output "命名镜像"
    docker tag $tagName $imageName
    throwIfError "命名镜像"

    try
    {
        Write-Output "推送镜像"
        docker push $imageName
        throwIfError "推送镜像"
    }
    finally
    {
        Write-Output "删除重命名镜像"
        docker rmi $imageName
        throwIfError "删除重命名镜像"
    }

}
finally
{
    Write-Output "删除镜像"
    docker rmi $tagName
    throwIfError "删除镜像"
}

Write-Output "发布完成"
上一篇
下一篇