--- ---
Skip to content

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.jsonfeaturesを空にすることでも一応起動できました.

執筆

phenylshimaのプロフィール画像
phenylshima phenylshima on GitHub

そのへんの大学生です.プロフィールについてはGitHubを見ていただければ…

最近よく使う言語はRustとTypeScriptです.Rustは書いていてたのしいので,よく採用します.