web-dev-qa-db-ja.com

「Amazon Container Services」からコマンドをコピーした後、aws ecrが「非TTYデバイスからインタラクティブログインを実行できない」と言った

ubuntu18.04 of view Push commandsによって提供されるコマンドを使用して、AWSのAmazon Container ServicesマシンにAmazon ECRのDockerイメージをセットアップしようとしています view Push commands of Amazon container services

、私はすでにubuntu18.04dockerを設定済みであり、docker -vの出力も以下のとおりであることに注意してください

ubuntu@ip-172-31-0-143:~$ docker -v
Docker version 19.03.7, build 7141c199a2

Ubuntu18.04のAWS CLIでAmazonコンテナーサービスによって提供されるコマンドを実行すると、エラーとしてエラーが表示されます:非TTYデバイスからインタラクティブログインを実行できません

私が使用しているコマンドは

aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 8233251134332.dkr.ecr.us-east-2.amazonaws.com/gatling-lots

awscliを正常に構成し、aws s3 lsから詳細を確認できることに注意してください

詳細なエラーログは次のとおりです

ubuntu@ip-172-31-0-143:~$ aws ecr get-login-password --region us-   
east-2 | docker login --username AWS --password-stdin 
823443336.dkr.ecr.us-west-2.amazonaws.com/gatling-lots
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

の出力

ubuntu@ip-172-31-0-143:~$ (aws ecr get-login --no-include-email  --region us-east-2)

docker login -u AWS -p 

MzQxL2c0Yks4RjVxeDg9IiwidmVyc2lvbiI6IjIiLCJ0eXBlIjoiREFUQV9LRVkiLCJleHBpcmF0aW9uIjoxNTgzNjgzNDY5fQ== https://825251119036.dkr.ecr.us- east-2.amazonaws.com
6

以下の手順でその問題を解決します。

$curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.Zip" -o "awscliv2.Zip"
unzip awscliv2.Zip
Sudo ./aws/install

$aws --version

aws-cli/2.0.30 Python/3.7.3 Linux/4.14.181-142.260.amzn2.x86_64 botocore/2.0.0dev34

$aws ecr get-login-password --region your_region | docker login --username AWS --password-stdin Account_ID.dkr.ecr.your_region.amazonaws.com

Account IDおよびRegion

0
Thadikaran K