[英]Docker Image can't push to ECR via Jenkins Pipeline & docker.withRegistry
[英]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.