[英]Pulling image from Amazon ECR from 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.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 login命令。 除非您进行eval
,否则它实际上不会登录到注册表。 只要您的AWS_ACCESS_ID
和AWS_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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.