概要
docker build を実行したら以下のようなエラーが出てビルドできなくなりました。以下、対処方法についてまとめていきます。
------
> [internal] load metadata for docker.io/library/build:latest:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
環境
- Windows11
- Docker Desktop 4.11.1 (84025)
- WSL2
- Ubuntu 20.04
結論
一番最後に書いた環境変数を設定するで解決しました。
対処方法
いくつか対処方法が提案されています。
~/.docker/config.json の編集
credsStore を credStore に変更するというのがありましたが、まったく効果がありませんでした。
.token_seed の削除
こちらも効果はありませんでした。
docker login する
こちらも効果はありませんでした。なお docker login すると ~/.docker/config.json から credsStore がなくなりました。
Docker Engine の設定変更
insecure-registries の設定
たとえばしーまんブログを参考にして、以下を追記して再起動したところ、Docker Desktop が Starting のまま起動しなくなりました。
"insecure-registries": ["docker.io"],
buildKit の設定
buildKit を false にするといいというのが Github Issue にありましたが、こちらは試していません。ですが、おそらく同じ効果になるであろう後述の方法を採用しました。
環境変数の設定
同じく Github Issue のコメントにある環境変数を設定しました。
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
どうやら私の場合はこれで直りました。これは永続化させておくために ~/.bashrc に記載しておくといいでしょう。