Try to do the docker login
from your terminal. If you face the following error:
Error: Cannot perform an interactive login from a non TTY device
For fixing this update your aws cli version 1.x.x to 2
If you don’t have aws-cli installed, please install it.
Install AWS-CLI v2
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install --update -b /home/abhilash/.local/bin
$ aws --version
NOTE: Add/Update access and secret key with aws configure
of your new I AM role that has ECR access.
Goto https://ap-south-1.console.aws.amazon.com/ecr/repositories and create a repository.
Login and push to this repository URI:
$ aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin xxxxxxxx.dkr.ecr.ap-south-1.amazonaws.com
If this cmd not works for some reason, you can try another way:
$ docker login -u AWS -p $(aws ecr get-login-password --region ap-south-1) xxxxxxxx.dkr.ecr.ap-south-1.amazonaws.com
Tag the local image:
$ docker tag test-api:latest xxxxxxxx.dkr.ecr.ap-south-1.amazonaws.com/test-api-container:latest
Push the image:
$ docker push xxxxxxxx.dkr.ecr.ap-south-1.amazonaws.com/test-api-container:latest
AWS doc url: https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html