【AWS】WindowsでAWS ECRへのpush時のエラー対処

【AWS】WindowsでAWS ECRへのpush時のエラー対処


# ecr

起きたこと

どのタイミングから発生しているのかわかりませんが、普段と同じ手順でpushしようとしたのに突然AWS ECRへDocker imageのpushが出来なくなっていました。

aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin xxxxxxxxx.dkr.ecr.
ap-northeast-1.amazonaws.com
Error saving credentials: error storing credentials - err: exit status 1, out: `error storing credentials - err: exit status 1, out: `The stub received bad data.`

エラーの内容を調査してみると、どうやらAWSが返す認証情報がWindowsには長すぎて受け付けられないことが原因のようです。

また面倒なところでエラーが起きましたね…。

対処方法

Windowsで認証情報を保存する際にエラーが起きているので、一時的な処理となりますが認証情報を保存しないようにしてしまいましょう。 (何が起こるかは詳しく確認していません。設定を変更する際は自己責任でお願いします。)

dockerの設定ファイル「C:\Users\name\.docker\config.json」を開いて設定を書き換えます。

こんな感じになっていると思うので、

{
  ...
  "credStore":"desktop",
  "credsStore":"desktop"
  ...
}

こんな感じにcredStoreとcredsStoreをnullに書き換えてあげます。

{
  ...
  "credStore":null,
  "credsStore":null,
  ...
}

これで上手く行くはずです!

ただ、どうやらPCを再起動すると設定は元に戻るようです。早いこと修正してほしいものです…。