結論としてはWSL2の再インストールで解決しました。
あくまで私個人の環境での解決策のため、必ずこの方法で解決できるわけではないことにご留意ください。
1. 問題・症状
下記のエラーによってDev Containers拡張機能によるコンテナ起動ができない。(CursorのOutputの「Remote - Dev Containers」に表示されたメッセージ抜粋)
2025-07-15 22:30:40.179 [info] Searching for devcontainer.json files
2025-07-15 22:30:40.211 [info] Found 1 devcontainer.json files: \home\john\projects\testplan\.devcontainer\devcontainer.json
2025-07-15 22:30:40.211 [info] Reading devcontainer config with command: read-configuration --workspace-folder /home/john/projects/testplan --config /home/john/projects/testplan/.devcontainer/devcontainer.json
2025-07-15 22:30:40.211 [error] Failed to read devcontainer config Devcontainer CLI not found at /tmp/devcontainer-cli-933bd396-0427-4900-a917-d848f754299e/cli/dist/spec-node/devContainersSpecCLI.js: EntryNotFound (FileSystemError): /tmp/devcontainer-cli-933bd396-0427-4900-a917-d848f754299e/cli/dist/spec-node/devContainersSpecCLI.js
2025-07-15 22:30:40.211 [error] Failed to reopen folder in container Failed to read devcontainer configuration
AnysphereのDev Containers拡張にて、Windows側のホームディレクトリにある .cursor\extensions\anysphere.remote-containers-1.X.X\dist@devcontainers\cli をWSL2側の /tmp/devcontainer-cli-UUID にコピーした直後にcli/dist/spec-node/devContainersSpecCLI.js が見つからず失敗しているようでした。
VS CodeのDev Containers拡張機能は問題なく使えています。
/tmp/devcontainer-cli-UUID以下を確認すると下記のようになっていて確かにdevContainersSpecCLI.jsがありません。それどころかディレクトリ構成だけコピーされていて、他に必要な関係ファイル一式も無い状態です。
(解決後のディレクトリ構成を編集して作成した再現のため、エラーメッセージ抜粋のUUIDとは異なります。)
john@user01:~/projects/testplan$ ls -lR /tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/:
total 32
drwxr-xr-x 4 john john 4096 Jul 19 15:11 cli
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/cli:
total 8
drwxr-xr-x 3 john john 4096 Jul 19 15:11 dist
drwxr-xr-x 2 john john 4096 Jul 19 15:11 scripts
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/cli/dist:
total 4
drwxr-xr-x 2 john john 4096 Jul 19 15:11 spec-node
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/cli/dist/spec-node:
total 1680
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/cli/scripts:
total 4
解決後のディレクトリ構成は下記のように構成されていました。これが正常なようです。
john@user01:~/projects/testplan$ ls -lR /tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/:
total 32
drwxr-xr-x 4 john john 4096 Jul 19 15:11 cli
-rw-r--r-- 1 john john 5395 Jul 19 15:11 devcontainerShutdownMonitor.js
-rw-r--r-- 1 john john 16937 Jul 19 15:11 forwarder.js
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/cli:
total 8
drwxr-xr-x 3 john john 4096 Jul 19 15:11 dist
drwxr-xr-x 2 john john 4096 Jul 19 15:11 scripts
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/cli/dist:
total 4
drwxr-xr-x 2 john john 4096 Jul 19 15:11 spec-node
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/cli/dist/spec-node:
total 1680
-rw-r--r-- 1 john john 1712170 Jul 19 15:11 devContainersSpecCLI.js
-rw-r--r-- 1 john john 949 Jul 19 15:11 devContainersSpecCLI.js.LICENSE.txt
/tmp/devcontainer-cli-4b37f800-7f4d-4e26-a4d5-ef1ae4eb06b3/cli/scripts:
total 4
-rw-r--r-- 1 john john 1463 Jul 19 15:11 updateUID.Dockerfile
2. 解決方法
概略
下記のQiita記事を参考にWSL2を再インストールすることで解決しました。
WSL2 のインストールとアンインストール
復元したディストリビューションでも問題なくCursorのDev Containers拡張機能によるコンテナ起動ができました。
(WSL2で現在利用しているディストリビューションをtarファイルでバックアップしてから行いました。)
具体的な解決手順
アンインストール
-
wsl --unregister <ディストリビューション名>でディストリビューションの登録解除(インストール済みの全部のディストリビューションに対して実行) - 設定>アプリ>インストールされているアプリからディストリビューション削除
- 「Windowsの機能の有効化または無効化」から「Linux用サブシステム」と「Virtual Machine Platform」のチェックを外す(この時点ではPC再起動をしない)
- 設定>アプリ>インストールされているアプリから「Windows Subsystem for Linux Update」削除(Qiitaの参考記事に記載されているもので、自分の環境にあったのはこれだけだった)
- PC再起動
再インストール
- 「Windowsの機能の有効化または無効化」から「Linux用サブシステム」と「Virtual Machine Platform」のチェックを入れる
- PC再起動
- 管理者PowerShellで
wsl --install実行(管理者PowerShellを使用するのはここだけで、他は通常のPowerShellで可) - インストールされたUbuntuを--unregisterで登録解除(自分には不要なため)
- バックアップしていたディストリビューションを
wsl --import <ディストリビューション名> <展開ディレクトリ先指定> <tarファイル指定>で復元
3. 問題の原因推測
以下の要因によって、いつの間にかデータの残骸ができてしまい、データの不整合が発生してエラーになったと考えています。
- 2023/01からWSL2を利用している
- 一時「Docker Desktop for Windows」を入れた(アプリケーション自体に非はない)
- ディストリビューションの登録解除と復元を何度も繰り返した
- 他にも色々なことをガチャガチャやっていた
2025/05に初めてWSL2をインストールしたWindows 10 Proでは同じエラーが発生せず普通にDev Containers拡張機能を使えたため、数年前からWSL2を利用していると発生する可能性があるのかもしれません。
4. WSL2再インストール前に試みたこと
以下を試してもエラーを解決することはできませんでした。他のエラー内容では解決できた事例もあるっぽいです。
- Dev Containers拡張機能の再インストール及びバージョン変更
- Windows側の.cursor/extensionsディレクトリと、WSL2側の.cursor-server/extensionsディレクトリを削除
- Cursorのクリーンインストール(以下でアンインストールしてから再インストール)
- アプリのアンインストール
- C:\Users\user01\AppData\Local\Programs\cursorディレクトリ削除($env:LOCALAPPDATA\Programs配下)
- C:\Users\user01\AppData\Roaming\Cursorディレクトリ削除($env:APPDATA配下)
- システム環境変数からc:\Users\user01\AppData\Local\Programs\cursor\resources\app\binを削除
- WSL2に新しいディストリビューションをインストール
- ディストリビューションに2つのユーザーがある状態だったものを、1つのユーザーだけにする(個人的な理由でデフォルトユーザーは使わないという事情により)
- デフォルトユーザーだけにした場合及び追加したユーザーだけにした場合の2通り
5. 環境情報
| 項目 | 値 |
|---|---|
| ホストOS | Windows 11 Home |
| WSL2バージョン | 2.5.7.0 |
| ディストリビューション | Ubuntu 24.04 |
| Cursorバージョン | 1.1.7~1.2.4 |
| Dev Containersバージョン | 1.0.8~1.0.15 |
DockerはUbuntuにインストールしているものを利用し、sudo usermod -aG docker <ユーザー名>を使ってsudo無しでdockerコマンドを使用可能な状態。
(「Docker Desktop for Windows」は使っておらず、過去にインストールしたものはアンインストール済み)