Ich versuche, ein Docker-Image in eine Amazon ECR-Registrierung zu verschieben. Ich verwende Docker Client Docker Version 1.9.1, Build a34a1d5
. Ich benutze aws ecr get-login --region us-east-1
, um die Docker-Login-Creds zu bekommen. Dann logge ich mich erfolgreich wie folgt mit diesen Creds ein:
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
Wenn ich jedoch versuche, mein Bild zu verschieben, wird der folgende Fehler angezeigt:
$ 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
Ich habe sichergestellt, dass der aws-Benutzer die richtigen Berechtigungen hat. Ich habe auch sichergestellt, dass das Repository dem Benutzer erlaubt, darauf zu pushen. Um sicherzugehen, dass dies kein Problem ist, habe ich die Registrierung so eingestellt, dass alle Benutzer vollen Zugriff haben. Nichts ändert den "no basic auth credentials"
Fehler. Ich weiß nicht, wie ich mit dem Debuggen beginnen soll, da der gesamte Datenverkehr verschlüsselt ist.
AKTUALISIEREN
Ich hatte also ein bisschen Homer Simpson D'Oh-Moment, als ich die Grundursache meines Problems erkannte. Ich habe Zugriff auf mehrere AWS-Konten. Obwohl ich aws configure
meine Anmeldeinformationen für das Konto festgelegt habe, in dem ich mein Repository eingerichtet hatte, verwendete die aws cli tatsächlich die Umgebungsvariablen AWS_ACCESS_KEY_ID
und AWS_SECRET_ACCESS_KEY
. Als ich das tat aws ecr get-login
, gab ich ein Login für das falsche Konto zurück. Ich habe nicht bemerkt, dass die Kontonummern unterschiedlich waren, bis ich jetzt zurückgegangen bin, um einige der vorgeschlagenen Antworten auszuprobieren. Wenn ich die Umgebungsvariablen entferne, funktioniert alles korrekt. Ich denke, das Motto der Geschichte lautet: Wenn Sie auf diesen Fehler stoßen, stellen Sie sicher, dass das Repository, in das Sie sich einloggen, mit dem Tag übereinstimmt, das Sie auf das Bild angewendet haben.