起きたこと
docker build
しようとしたらno basic auth credentials
と言うエラーが出てうまく行かない
S3環境を見に行けてなかったっぽい(エラーログ保存し忘れました)
aws ecr get-login-password コマンドを使用して Docker に対して正常に認証されても、HTTP 403 (Forbidden) エラーが発生したり、docker push コマンドまたは docker pull コマンドからのエラーメッセージ no basic auth credentials が表示されたりする場合があります。この問題の既知の原因をいくつか次に示します。
解決策
1.AWS CLIインストール
もうしてある人は飛ばしてOK
バージョン2が推奨されてる感じだったのでバージョン2をインストールしました。
MacOSを選択。
手順に沿って最新をインストールしました。
2.AWS CLIセットアップ
上記URLに沿ってセットアップを行います。
設定の基本に書いてある方法でアクセスキー ID とシークレットアクセスキーを発行します。
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
上記コマンドにアクセスキーID、シークレットアクセスキーを当てはめます。
region
は東京なので自分はap-northeast-1
を設定しました。
Default output format
は例に習ってjsonを設定しました。
3.デフォルトレジストリに対して認証する
AWS CLIなので
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
これに自分の情報を当てはめていきます(上記リンク先赤文字部分)。
region
は先程自分が指定したregion、aws_account_id
はAWSのアカウント設定の一番上に書いてあります。
これでno basic auth credentials
は出なくなると思います。
終わり
AWS公式ドキュメントにキレイにまとめられているので助かりました。