`aws ecr get-login` のトラブルシュート

ECR サーバにログインするとき、 aws ecr get-login コマンドでログインに必要なコマンドを取得できる。単にこのコマンドの結果を eval すればログインが完了するので、通常は eval $(aws ecr get-login) とすればよい。

しかし、次のようなエラーに遭遇してしまった。

$ eval $(aws ecr get-login)
Flag --email has been deprecated, will be removed in 1.13.
error getting credentials - err: exit status 1, out: `2017-04-13T08:27:26Z [ERROR] docker-credential-ecr-login can only be used with Amazon EC2 Container Registry.
credentials not found in native keychain`

credentials not found in native keychain の意味がわからず、「キーチェーンなんて動いてないけど…」と時間を無駄に費やしてしまった。

今回のケースでは、~/.docker/config.json に次のような情報が詰まっていたことが問題であった (どのタイミングでこの情報が入ったのか不明だけど…)。

$ cat ~/.docker/config.json
{"credsStore":"ecr-login"}

これを削除して再度 eval $(aws ecr get-login) を実行することで、ECR にログインできた。

`aws ecr get-login` のトラブルシュート」への1件のフィードバック

  1. 次のメッセージでエラーになる場合も、同じ手順で復旧できた:

    > Error saving credentials: error storing credentials – err: exit status 1, out: `not implemented`

    エラーメッセージ、ちょっと不親切すぎるのでは…。

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中