1

尝试将图像推送到 ECR 时,我总是收到“无基本身份验证”错误。ECR 在 us-east-1 中。

这是登录命令

aws ecr get-login --region us-east-1 --no-include-email

我得到这样的回应

docker login -u AWS -p eyJwYXl ... 

我复制此响应并运行命令,而不是得到此响应

Login Succeeded

我假设我成功登录了 AWS 和 docker,所以我尝试将图像推送到 ECR

docker push AWSID.dkr.ecr.us-east-1.amazonaws.com/repositoryname

比响应是这样的

ed9f73170eb1: Preparing
f26c0d1885c7: Preparing
254cc70ba305: Preparing
6bfcbc08ecad: Preparing
0cb1addb8efc: Preparing
f9109426e338: Waiting
b7f99d06d826: Waiting
24d803cb9c1a: Waiting
25c4f6422338: Preparing
69b416623121: Waiting
0753f0746a0d: Waiting
a20143cd0986: Waiting
3028f693c3e6: Waiting
514a0f74b55d: Waiting
no basic auth credentials

为了找出导致错误的原因,我检查了~/.docker/config.json. 我的 config.json 是这样的。

{
"auths": {
    "AWSPATH.dkr.ecr.us-east-1.amazonaws.com": {
        "auth": "QVd..},
    "https://index.docker.io/v1/": {}
       },
"HttpHeaders": {
    "User-Agent": "Docker-Client/19.03.5 (darwin)"
}
4

3 回答 3

2

这似乎是一个身份验证问题。重新配置您的 AWS-CLI,也许这会解决您的问题。

aws configure

https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html

于 2019-12-13T05:01:14.590 回答
1

尝试以这种方式登录并推送:

eval $(aws ecr get-login --no-include-email | sed ‘s|https://||’)

于 2019-12-13T06:57:10.190 回答
0

问题是,詹金斯服务器已经配置了不同团队帐户的 aws。所以我添加了区域设置(我们使用不同的区域)并且问题解决了。

于 2020-01-10T02:40:17.997 回答