Can't push image to Amazon ECR - fails with "no basic auth credentials"
<p>I'm trying to push a docker image to an Amazon ECR registry. I'm using docker client Docker version 1.9.1, build <code>a34a1d5</code>. I use <code>aws ecr get-login --region us-east-1</code> to get the docker login creds. Then I successfully login with those creds as follows: </p>

<pre><code>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
</code></pre>

<p>But when I try to push my image I get the following error:</p>

<pre><code>$ 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
</code></pre>

<p>I made sure that the aws user had the correct permissions. I also made sure that the repository allowed that user to push to it. Just to make sure that wasn't an issue I set the registry to allow all users full access. Nothing changes the <code>"no basic auth credentials"</code> error. I don't know how to begin to debug this since all the traffic is encrypted.</p>

<p><strong>UPDATE</strong></p>

<p>So I had a bit of Homer Simpson D'Oh moment when I realized the root cause of my problem. I have access to multiple AWS accounts. Even though I was using <code>aws configure</code> to set my credentials for the account where I had setup my repository the aws cli was actually using the environment variables <code>AWS_ACCESS_KEY_ID</code> and <code>AWS_SECRET_ACCESS_KEY</code>. So when I did <code>aws ecr get-login</code> it was returning a login for the wrong account. I failed to notice that the account numbers were different until I just went back now to try some of the proposed answers. When I remove the environment variables everything works correctly. I guess the motto of the story is if you hit this error, make sure that the repository you are logging into matches the tag you have applied to the image.</p>