こちらを参考にDockerイメージをEC2にデプロイしようと、
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin アカウントID.dkr.ecr.ap-northeast-1.amazonaws.com
のコマンドをターミナルで実行
- 以下のようなエラーがでた。
command not found aws
Cannot perform an interactive login from a non TTY device
まずAWSのコマンドが使えるようになっていないらしい。
2. StackOverflowによると「AWS CLI version 2」というのをインストールしないといけないらしい。そのために、こちらのページの指示に従って、以下のコマンドをターミナルで実行する。
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg ./AWSCLIV2.pkg -target /
3.AWSに認証情報を登録する
再度ターミナルで
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin アカウントID.dkr.ecr.ap-northeast-1.amazonaws.com
を実行したら、
Unable to locate credentials. You can configure credentials by running "aws configure".
というエラーがでた。こちらによると、認証情報が登録されていないため、それを登録する必要があるらしい。
このページの指示通り、aws configure list
をターミナルで実行すると、以下のようにでて、確かに認証情報がない。
こちらに飛び、認証情報を登録する
この時点でAWSのIAMユーザのアカウントがなければこちらから作る。このページの「Creating an administrator IAM user and group (console)」の項目の最後までやればOK。
ここまでできたら、このページの「Access key ID and secret access key」項目の指示に従ってAccess key と Secret access key を作成する。作成したそれらはメモっておく。
次に、そのページにあるように、aws configure
をターミナルで実行する
「Access Key Id」と「Secret Access Key」に先ほど作成したものを入れる。
「Default region name」には「ap-northeast-1」を入れる
「Default out put format」にはjsonを入れる
これで認証情報が登録完了
4.再度
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin アカウントID.dkr.ecr.ap-northeast-1.amazonaws.com
を実行
Login Succeeded
がターミナルに表示!