Sto cercando di inviare un'immagine docker a un registro Amazon ECR. Sto usando il client docker Docker versione 1.9.1, build a34a1d5
. Uso aws ecr get-login --region us-east-1
per ottenere i crediti di accesso alla finestra mobile. Quindi accedo con successo con quei crediti come segue:
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
Ma quando provo a spingere la mia immagine ottengo il seguente errore:
$ 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
Mi sono assicurato che l'utente aws avesse i permessi corretti. Mi sono anche assicurato che il repository consentisse all'utente di spingerlo verso di esso. Solo per essere sicuro che non fosse un problema, ho impostato il registro per consentire a tutti gli utenti l'accesso completo. Nulla cambia l' "no basic auth credentials"
errore. Non so come iniziare a eseguire il debug di questo poiché tutto il traffico è crittografato.
AGGIORNARE
Quindi ho avuto un po 'di Homer Simpson D'Oh momento in cui ho capito la causa principale del mio problema. Ho accesso a più account AWS. Anche se stavo usando aws configure
per impostare le mie credenziali per l'account in cui avevo impostato il mio repository, aws cli stava effettivamente usando le variabili di ambiente AWS_ACCESS_KEY_ID
e AWS_SECRET_ACCESS_KEY
. Quindi, quando l'ho fatto aws ecr get-login
, stava restituendo un login per l'account sbagliato. Non ho notato che i numeri di conto erano diversi fino a quando non sono appena tornato ora per provare alcune delle risposte proposte. Quando rimuovo le variabili di ambiente, tutto funziona correttamente. Immagino che il motto della storia sia che se colpisci questo errore, assicurati che il repository in cui stai effettuando l'accesso corrisponda al tag che hai applicato all'immagine.