簡體   English   中英

即使登錄 docker 並成功,也無法將圖像推送到 ECR

[英]can't push image to ECR even though login in docker and was successfully

嘗試將圖像推送到 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)"
}

這似乎是一個身份驗證問題。 重新配置您的 AWS-CLI,也許可以解決您的問題。

aws configure

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

嘗試以這種方式登錄並推送:

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

問題是,jenkins 服務器已經使用不同團隊的帳戶配置了 aws。 所以我添加了區域設置(我們使用了不同的區域)並解決了問題。

對我來說,這只是缺少權限。

有許多與上傳相關的權限,例如

                "ecr:UploadLayerPart",
                "ecr:InitiateLayerUpload",
                "ecr:CompleteLayerUpload"
                "ecr:PutImage"

我通過將它們添加到我的代理允許的權限中解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM