繁体   English   中英

从Bitbucket Pipelines从Amazon ECR提取图像

[英]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_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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM