movee(モビー) オノデラのブログ

(株)movee代表。週末は自社サービスを作っています。

aws ecr get-loginしてpushするとEOFになる

aws ecrでloginが成功したのにimageをpushしてもEOFになる場合があったのでメモ。これは単純に違うアカウント、ユーザーとしてpushしているから。push先のアカウントが異なる場合に発生する可能性があると思われる。

aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin 【アカウントID】.dkr.ecr.ap-northeast-1.amazonaws.com

ローカル環境からterminalでpushするとき、明示的にregionやユーザーを指定しないと[default]ユーザーとしてログインする。 設定は以下ファイルを見てみると[default]ユーザーがいるはず。(おそらく初回ログイン時なのか、自分で過去設定したかは不明)

~/.aws/credentials

~/.aws/credentials

[default]
aws_access_key_id = xxxxxx
aws_secret_access_key = xxxxxx

このユーザーとしてログインしてしまっているので指定したいユーザーを書く。

~/.aws/credentials

[default]
aws_access_key_id = xxxxxx
aws_secret_access_key = xxxxxx
[onody00]
aws_access_key_id = xxxxxx
aws_secret_access_key = xxxxxx

で、ログインするときに--profile onody00を指定してあげれば、そのユーザーでログインできる

aws ecr get-login-password --region ap-northeast-1 --profile onody00 | docker login --username AWS --password-stdin 【アカウントID】.dkr.ecr.ap-northeast-1.amazonaws.com

ちゃんとイメージのpushもうまくいった。