【问题标题】:Pulling image from Amazon ECR from Bitbucket Pipelines从 Bitbucket Pipelines 从 Amazon ECR 中提取图像
【发布时间】:2019-07-05 11:42:14
【问题描述】:

我正在尝试从 Bitbucket 管道的私有 Amazon Docker 存储库 (ECR) 中提取 docker 映像。

我正在做以下事情:

script:           
   - aws ecr get-login --registry-ids $AWS_ID --no-include-email --region $AWS_REGION
   - docker run -d -p 9092:9092 --name=kapi $AWS_ID.dkr.ecr.$AWS_REGION.amazonaws.com/company/kapi:1.0

我在管道上看到的错误:

docker: Error response from daemon: Get https://$AWS_ID.dkr.ecr.$AWS_REGION.amazonaws.com/v2/company/kapi/manifests/1.0: no basic auth credentials.

【问题讨论】:

    标签: amazon-web-services docker bitbucket-pipelines


    【解决方案1】:

    嗯,错误似乎很明显:

    no basic auth credentials
    

    aws ecr get-login 返回要执行的命令以登录。不知道你用的是哪个平台,如果你用的是linux的话,

    尝试执行AWS返回的命令:

    $(aws ecr get-login --registry-ids $AWS_ID --no-include-email --region $AWS_REGION)
    

    您应该会收到来自 docker 的消息,表明您已成功登录:

    WARNING! Using --password via the CLI is insecure. Use --password-stdin.
    Login Succeeded
    

     调试

    如果仍然无法正常工作,您仍然可以通过手动运行命令进行调试:

    aws ecr get-login --registry-ids $AWS_ID --no-include-email --region $AWS_REGION
    

    它应该返回类似:

    docker login -u AWS -p ALongText https://ID.dkr.ecr.REGION.amazonaws.com
    

    【讨论】:

      【解决方案2】:

      aws ecr get-login 命令生成 docker login 命令。除非你 eval 它,否则它实际上不会让你登录到注册表。如果您的 AWS_ACCESS_IDAWS_ACCESS_SECRET 正确,这应该可以工作:

      eval $(aws ecr get-login --registry-ids $AWS_ID --no-include-email --region $AWS_REGION)
      

      您的脚本步骤应如下所示:

      script:           
         - aws ecr get-login --registry-ids $AWS_ID --no-include-email --region $AWS_REGION
         - docker run -d -p 9092:9092 --name=kapi $AWS_ID.dkr.ecr.$AWS_REGION.amazonaws.com/company/kapi:1.0
      

      【讨论】:

        猜你喜欢
        • 2018-02-09
        • 1970-01-01
        • 2023-03-25
        • 2018-01-01
        • 2018-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-07
        相关资源
        最近更新 更多