Estoy tratando de insertar una imagen acoplable en un registro de Amazon ECR. Estoy usando Docker Client Docker versión 1.9.1, compilación a34a1d5
. Utilizo aws ecr get-login --region us-east-1
para obtener los créditos de inicio de sesión de Docker. Luego inicié sesión con éxito con esos créditos de la siguiente manera:
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
Pero cuando trato de empujar mi imagen me sale el siguiente error:
$ 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
Me aseguré de que el usuario aws tuviera los permisos correctos. También me aseguré de que el repositorio permitiera a ese usuario presionarlo. Solo para asegurarme de que no era un problema, configuré el registro para permitir que todos los usuarios tengan acceso completo. Nada cambia el "no basic auth credentials"
error. No sé cómo comenzar a depurar esto ya que todo el tráfico está encriptado.
ACTUALIZAR
Así que tuve un momento de Homer Simpson D'Oh cuando me di cuenta de la causa raíz de mi problema. Tengo acceso a varias cuentas de AWS. A pesar de que estaba usando aws configure
mis credenciales para la cuenta donde había configurado mi repositorio, aws cli estaba usando las variables de entorno AWS_ACCESS_KEY_ID
y AWS_SECRET_ACCESS_KEY
. Entonces, cuando lo hice aws ecr get-login
, estaba devolviendo un inicio de sesión para la cuenta incorrecta. No noté que los números de cuenta eran diferentes hasta que volví ahora para probar algunas de las respuestas propuestas. Cuando elimino las variables de entorno, todo funciona correctamente. Supongo que el lema de la historia es que si encuentras este error, asegúrate de que el repositorio en el que estás iniciando sesión coincida con la etiqueta que has aplicado a la imagen.