devcontainerで「failed to solve: dev_container_feature_content_temp: pull access denied」と出てビルドできない件
先日用事があってdevcontainerを起動しようとしたところ,次のようなエラーで起動できないという事件がありました.
[2023-08-20T00:00:37.029Z] [+] Building 3.2s (5/5) FINISHED
=> [devcontainer internal] booting buildkit 0.9s
=> => starting container buildx_buildkit_blissful_hawking0 0.9s
=> [devcontainer internal] load build definition from Dockerfile-with-fe 0.0s
=> => transferring dockerfile: 2.81kB 0.0s
=> [devcontainer internal] load .dockerignore 0.0s
=> => transferring context: 98B 0.0s
=> ERROR [devcontainer internal] load metadata for docker.io/library/dev 2.1s
=> [devcontainer internal] load metadata for mcr.microsoft.com/devcontai 0.6s
------
> [devcontainer internal] load metadata for docker.io/library/dev_container_feature_content_temp:latest:
------
[2023-08-20T00:00:37.029Z] failed to solve: dev_container_feature_content_temp: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
10分ほどネットをさまよいましたが,GitHubにissueが建っていました.
Dev Containers 0.255.2 docker compose problem
結論から言えば,docker buildx use default
を実行して,buildxのbuilderをdefault
に切り替えることで一応解決するようです
(後述).
エラー内容
VSCodeでdevcontainerを起動しようとすると,途中でビルドが失敗して次のようなメッセージが表示されます.
「ローカルでdevcontainer.jsonを編集」を押すとdevcontainer.jsonとログが表示されます. ログに前述のエラーがあれば,この事象の可能性があります.
解決方法の詳細
まず,ターミナルを開き,docker buildx ls
を実行してください.
すると,次のように現在存在するbuilderが表示されます.
$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
blissful_hawking * docker-container
blissful_hawking0 unix:///var/run/docker.sock running v0.10.5 linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
default docker
default default running v0.11.6+0a15675913b7 linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
*
(アスタリスク)がついたものが,現在選択されているbuilderです.
ここではblissful_hawking
が選択されていますので,default
に切り替えます.
docker buildx use default
再度docker buildx ls
を実行し,default
に切り替わったことを確認してください.
$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
blissful_hawking docker-container
blissful_hawking0 unix:///var/run/docker.sock running v0.10.5 linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
default * docker
default default running v0.11.6+0a15675913b7 linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
VSCodeに戻ります.
最初のエラー画面で「ローカルでdevcontainer.jsonを編集」を選択した場合, VSCodeはdevcontainerでない画面で開かれているはずですので,devcontainerで開き直してください.
しばらくビルドが走った後,今度は起動すると思います.
補足
default
に切り替える以外に,devcontainer.json
のfeatures
を空にすることでも一応起動できました.