Amazon web services 从Bitbucket管道中从Amazon ECR提取图像

Amazon web services 从Bitbucket管道中从Amazon ECR提取图像,amazon-web-services,docker,bitbucket-pipelines,Amazon Web Services,Docker,Bitbucket Pipelines,我正试图从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.

我正试图从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
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.

错误似乎很明显:

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

aws ecr get login
命令生成docker登录命令。除非您
eval
it,否则它实际上不会让您登录到注册表。如果您的
AWS\u访问\u ID
AWS\u访问\u SECRET
正确无误,则此项操作应有效:

eval $(aws ecr get-login --registry-ids $AWS_ID --no-include-email --region $AWS_REGION)
您的脚本步骤应该如下所示: