Bir docker görüntüsünü bir Amazon ECR kayıt defterine aktarmaya çalışıyorum. Docker istemcisi Docker sürüm 1.9.1, build kullanıyorum a34a1d5
. aws ecr get-login --region us-east-1
Docker giriş kredilerini almak için kullanıyorum . Sonra bu kredilerle başarılı bir şekilde şu şekilde giriş yapıyorum:
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
Ama resmimi itmeye çalıştığımda şu hatayı alıyorum:
$ 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 kullanıcısının doğru izinlere sahip olduğundan emin oldum. Ben de deponun kullanıcının ona itmesine izin verdiğinden emin oldum. Bunun bir sorun olmadığından emin olmak için kayıt defterini tüm kullanıcıların tam erişimine izin verecek şekilde ayarladım. Hiçbir şey "no basic auth credentials"
hatayı değiştirmez. Tüm trafik şifreli olduğundan bu hata ayıklamaya nasıl başlayacağımı bilmiyorum.
GÜNCELLEME
Bu yüzden problemimin temel sebebini fark ettiğimde biraz Homer Simpson D'Oh anı yaşadım. Birden fazla AWS hesabına erişimim var. aws configure
Havuzumu kurduğum hesap için kimlik bilgilerimi ayarlamak için kullanıyor olmama rağmen , aws cli aslında ortam değişkenlerini AWS_ACCESS_KEY_ID
ve AWS_SECRET_ACCESS_KEY
. Bu yüzden yaptığımda aws ecr get-login
yanlış hesap için bir giriş döndürüyordu. Önerilen yanıtlardan bazılarını denemek için şimdi geri dönene kadar hesap numaralarının farklı olduğunu fark edemedim. Ortam değişkenlerini kaldırdığımda her şey doğru çalışıyor. Sanırım hikayenin sloganı bu hatayı vurursanız, giriş yaptığınız havuzun görüntüye uyguladığınız etiketle eşleştiğinden emin olun.