sunmingtao / sample-code

3 stars 4 forks source link

AWS ECR Error: Cannot perform an interactive login from a non TTY device (And steps to push image to docker) #260

Closed sunmingtao closed 3 years ago

sunmingtao commented 3 years ago

Follow https://medium.com/swlh/build-deploy-a-rest-api-from-scratch-using-spring-boot-and-aws-ecs-eb369137a020#id_token=eyJhbGciOiJSUzI1NiIsImtpZCI6IjI2MTI5YmE1NDNjNTZlOWZiZDUzZGZkY2I3Nzg5ZjhiZjhmMWExYTEiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJuYmYiOjE2MDk3MTY0OTUsImF1ZCI6IjIxNjI5NjAzNTgzNC1rMWs2cWUwNjBzMnRwMmEyamFtNGxqZGNtczAwc3R0Zy5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsInN1YiI6IjExNjUwMzQzMTA3NTgwNzA2NDUxMSIsImVtYWlsIjoic3VubWluZ3Rhb0BnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXpwIjoiMjE2Mjk2MDM1ODM0LWsxazZxZTA2MHMydHAyYTJqYW00bGpkY21zMDBzdHRnLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwibmFtZSI6Ik1pbmd0YW8gU1VOIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS8tTlo4b2xZOHV2SUkvQUFBQUFBQUFBQUkvQUFBQUFBQUFBQUEvQU1adXVjbS1vaGhST1RyUXJmcml2QXd6NF9jWGw4elpiZy9zOTYtYy9waG90by5qcGciLCJnaXZlbl9uYW1lIjoiTWluZ3RhbyIsImZhbWlseV9uYW1lIjoiU1VOIiwiaWF0IjoxNjA5NzE2Nzk1LCJleHAiOjE2MDk3MjAzOTUsImp0aSI6ImZhNmUzMjA1MDY5N2MyNzJmZTc4YmY2ZGNlODYzMTZmNGIyNzFjOWUifQ.fPMdnjb4IymBeekOANNBbtFGesG8kDHt2gkEwnnDub9Q8v0d_3doz2PrAJt5pMYPD7ZbjvuAWPiYuu0K1sblrIv0QHbAz2HAzgV5TaiKDFjya8nyQhI-noZCnzdKMArSIsMUZVCWhdqROlPCW13Eqd5AT5xq6-07XWoWXIKe1cXC177UsYu4jx9aCi6zSInO_RL3NwsJbtVLMcHXLY3IRWxfSiZRoBg1lpqx_DHtqnTA7xnR9nrJgxCGfGe5vL4gO0X9XwL5rIaurwyXv94psdJIb1g38TBXHI8NlD9GEP8XWo8SB-leNACKWT_p9jWgiHpCfmZMKQabeFlyhjIA6g

Unable to login ecr

(base) msun-soccer-bet-rest-api (main)\ =>aws ecr get-login-password --region ap-southeast-2 | docker login --username AWS --password-stdin 527875336349.dkr.ecr.ap-southeast-2.amazonaws.com
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument operation: Invalid choice, valid choices are:

batch-check-layer-availability           | batch-delete-image                      
batch-get-image                          | complete-layer-upload                   
create-repository                        | delete-lifecycle-policy                 
delete-repository                        | delete-repository-policy                
describe-images                          | describe-repositories                   
get-authorization-token                  | get-download-url-for-layer              
get-lifecycle-policy                     | get-lifecycle-policy-preview            
get-repository-policy                    | initiate-layer-upload                   
list-images                              | put-image                               
put-lifecycle-policy                     | set-repository-policy                   
start-lifecycle-policy-preview           | upload-layer-part                       
get-login                                | help                                    
Error: Cannot perform an interactive login from a non TTY device

aws version

(base) msun-soccer-bet-rest-api (main)\ =>aws --version
aws-cli/1.16.25 Python/3.6.5 Darwin/18.7.0 botocore/1.12.15
sunmingtao commented 3 years ago

The aws-cli is too old for this command. Upgrade awscli to version 2.x.

https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-mac.html

To uninstall old awscli version (If installed using pip)

pip uninstall awscli

sunmingtao commented 3 years ago

Steps to build and push images to aws ECR

docker build -f Dockerfile -t soccer-bet-rest-api .
docker images
aws configure
aws ecr get-login-password --region ap-southeast-2 | docker login --username AWS --password-stdin 527875336349.dkr.ecr.ap-southeast-2.amazonaws.com
aws ecr create-repository --repository-name soccer-bet
docker tag soccer-bet-rest-api:latest 527875336349.dkr.ecr.ap-southeast-2.amazonaws.com/soccer-bet
docker push 527875336349.dkr.ecr.ap-southeast-2.amazonaws.com/soccer-bet