0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CursorでdevContainersSpecCLI.jsが無いためWSL2のDev Containers拡張機能が使えない問題の解決方法

0
Last updated at Posted at 2025-07-19

結論としては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ファイルでバックアップしてから行いました。)

具体的な解決手順

アンインストール

  1. wsl --unregister <ディストリビューション名>でディストリビューションの登録解除(インストール済みの全部のディストリビューションに対して実行)
  2. 設定>アプリ>インストールされているアプリからディストリビューション削除
  3. 「Windowsの機能の有効化または無効化」から「Linux用サブシステム」と「Virtual Machine Platform」のチェックを外す(この時点ではPC再起動をしない)
  4. 設定>アプリ>インストールされているアプリから「Windows Subsystem for Linux Update」削除(Qiitaの参考記事に記載されているもので、自分の環境にあったのはこれだけだった)
  5. PC再起動

再インストール

  1. 「Windowsの機能の有効化または無効化」から「Linux用サブシステム」と「Virtual Machine Platform」のチェックを入れる
  2. PC再起動
  3. 管理者PowerShellでwsl --install実行(管理者PowerShellを使用するのはここだけで、他は通常のPowerShellで可)
  4. インストールされたUbuntuを--unregisterで登録解除(自分には不要なため)
  5. バックアップしていたディストリビューションを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」は使っておらず、過去にインストールしたものはアンインストール済み)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?