ฉันกำลังพยายามที่จะผลักดันภาพนักเทียบท่าที่รีจิสทรี Amazon ECR ฉันใช้นักเทียบท่าไคลเอนต์นักเทียบท่าเวอร์ชัน 1.9.1 a34a1d5
แล้ว ฉันใช้aws ecr get-login --region us-east-1
เพื่อรับเครดิตเข้าสู่ระบบนักเทียบท่า จากนั้นฉันเข้าสู่ระบบด้วยเครดิตเหล่านี้สำเร็จแล้ว:
docker login -u AWS -p XXXX -e none https://####.dkr.ecr.us-east-1.amazonaws.com
WARNING: login credentials saved in /Users/ar/.docker/config.json
Login Succeeded
แต่เมื่อฉันพยายามที่จะผลักดันภาพของฉันฉันได้รับข้อผิดพลาดต่อไปนี้:
$ docker push ####.dkr.ecr.us-east-1.amazonaws.com/image:latest
The push refers to a repository [####.dkr.ecr.us-east-1.amazonaws.com/image] (len: 1)
bcff5e7e3c7c: Preparing
Post https://####.dkr.ecr.us-east-1.amazonaws.com/v2/image/blobs/uploads/: no basic auth credentials
ฉันทำให้แน่ใจว่าผู้ใช้ aws มีสิทธิ์ที่ถูกต้อง ฉันยังทำให้แน่ใจว่าที่เก็บอนุญาตให้ผู้ใช้ที่จะผลักดันมัน เพียงเพื่อให้แน่ใจว่าไม่ใช่ปัญหาฉันได้ตั้งค่ารีจิสทรีเพื่อให้ผู้ใช้ทุกคนสามารถเข้าถึงได้อย่างเต็มที่ ไม่มีอะไรเปลี่ยนแปลง"no basic auth credentials"
ข้อผิดพลาด ฉันไม่ทราบวิธีเริ่มแก้ไขข้อบกพร่องนี้เนื่องจากการรับส่งข้อมูลทั้งหมดได้รับการเข้ารหัส
UPDATE
ดังนั้นฉันจึงมีช่วงเวลาหนึ่งของโฮเมอร์ซิมป์สันดิโอเมื่อฉันตระหนักถึงสาเหตุของปัญหาของฉัน ฉันมีสิทธิ์เข้าถึงบัญชี AWS หลายบัญชี แม้ว่าฉันถูกใช้aws configure
ในการตั้งค่าข้อมูลประจำตัวของฉันสำหรับบัญชีที่ฉันได้ตั้งค่าของฉันเก็บ AWS CLI เป็นจริงโดยใช้ตัวแปรสภาพแวดล้อมและAWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
ดังนั้นเมื่อฉันทำaws ecr get-login
มันก็กลับเข้าสู่ระบบสำหรับบัญชีที่ไม่ถูกต้อง ฉันไม่สังเกตเห็นว่าหมายเลขบัญชีนั้นแตกต่างกันไปจนกระทั่งฉันเพิ่งกลับไปลองคำตอบที่เสนอ เมื่อฉันลบตัวแปรสภาพแวดล้อมทุกอย่างทำงานได้อย่างถูกต้อง ฉันเดาว่าคำขวัญของเรื่องนี้คือถ้าคุณพบข้อผิดพลาดนี้ตรวจสอบให้แน่ใจว่าพื้นที่เก็บข้อมูลที่คุณกำลังเข้าสู่ระบบตรงกับแท็กที่คุณใช้กับภาพ