首页 > 解决方案 > Docker Image 无法通过 Jenkins Pipeline 和 docker.withRegistry 推送到 ECR

问题描述

我在 aws 服务器上运行 jenkins 在构建 docker 映像的管道上工作并在同一个 aws 帐户上推送到 ECR

def aws_account = "https://xxxxxx.ecr.us-west-2.amazonaws.com/"
def ecr_credentials = "iam-role-arn for ecr"


    docker.withRegistry(aws_account + "${ecr_repository_name}", "ecr:us-west-2:${ecr_credentials}") {
        docker.image(customImage).push()
    }

在推动时,我遇到了错误 tcp:lookup is pointing to the account number itself

错误: docker.service Mar 04 10:46:13 ip-x-xxx-x-xxx dockerd[921]: time="2021-03-04T10:46:13.989576275Z" level=error msg="Handler for POST / v1.41/auth 返回错误:获取https://yyyyyyy.ecr.us-west-2.amazonaws.com/v2/:拨号 tcp:查找 yyyyyyy.ecr.us-west-2.amazonaws.com:没有这样的主持人”

标签: amazon-web-servicesdockerjenkins-pipelineamazon-ecr

解决方案


名字错了

def aws_account = "https://xxxxxx.ecr.us-west-2.amazonaws.com/"

它应该是这样的

def aws_account = "https://1234567890.dkr.ecr.us-west-2.amazonaws.com"
def ecr_credentials = "iam-role-arn for ecr"


    docker.withRegistry(aws_account + "${ecr_repository_name}", "ecr:us-west-2:${ecr_credentials}") {
        docker.image(customImage).push()
    }

使用 Jenkins 流水线插件推送到 ECR

从詹金斯管道推送到 ecr


推荐阅读