問題
ECR PublicのDocker Imageをpullするときに以下のエラー
ERROR [internal] load metadata for public.ecr.aws/lambda/nodejs:18
[internal] load metadata for public.ecr.aws/lambda/nodejs:18: failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests 18]: 400 Bad Request
解決策
以下のコマンドを実行
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
原因
このエラーは、Amazon Elastic Container Registry (ECR) Publicへの認証に問題がある場合に生じる
具体的には:
- Dockerクライアントが ECR Public に対して適切に認証されていなかった
- 既存の認証情報が期限切れや無効になっていた可能性がある
解決策の詳細説明
aws ecr-public get-login-password --region us-east-1
AWS CLI を使用して ECR Public の認証トークンを取得する
docker login --username AWS --password-stdin public.ecr.aws
取得したトークンを使用して Docker クライアントを ECR Public に認証する
この手順により、Docker クライアントが ECR Public から正しく認証され、イメージをプルできるようになる
参考