🐣
解決法:wslからvscodeを起動したらReopen in Container出来ない場合
エラー概要
wslから起動したvscodeの左下の青いボタン(><WSL:)をクリックして
Reopen in Containerを実行した際、
が表示されReopenできない。
エラーメッセージ(実際は赤字で改行なし)
[218 ms] Docker returned an error code ENOENT,
message: Exectuable 'docker' not found on PATH
'C:\Python312\Scripts\;C:\Python312\;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Git\cmd;C:\Program Files\dotnet\;C:\Program Files\Zero Install;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Users\*****\AppData\Local\Programs\Python\Python310\Scripts\;C:\Users\*****\AppData\Local\Programs\Python\Python310\;C:\Users\*****\AppData\Local\Microsoft\WindowsApps;C:\Users\*****\AppData\Local\GitHubDesktop\bin;C:\Users\*****\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\*****\AppData\Roaming\npm'.
Reopen in Containerとは:
vscodeが.devcontainerというディレクトリを作成し、docker container内での開発を可能にし、開発環境をチーム内で統一できる機能。
再現手順
①windowsでコマンドプロンプトを起動、wslでUbuntu24を起動。
windows$ wsl
②wsl内でdockerをインストール済みで、起動状態であることを確認。
docker composeもインストール済みの状態。
確認方法
$ docker info
Client: Docker Engine - Community
Version: 27.3.1
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.17.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.29.7
Path: /usr/libexec/docker/cli-plugins/docker-compose
③wsl内でvscodeを以下のように起動。
code .
④vscodeの左下の青いボタン(><WSL:)をクリック
⑤Paletteが中央に現れるので、Reopen in Conと入力しエンター
⑥エラーが表示される
解決法
①wsl内でvscodeを以下のように起動。
code .
②「Ctrl+,」を押しSettingを起動。
③ Userタブ(wslではなく) > Extentions > Dev Containerを選択。
④この設定を見つける。
⑤ON
⑥Reopen in Containerを実行
⑦成功!
解説
デフォルトの状態だと、vscodeは(wslから起動していても)dockerdがローカルOSのwindows上で動作していないかを探してしまう。
上記設定をONにすることで、wsl内のdockerdを発見してくれる。
同じようにハマった人のお役に立てれば幸いです。
Discussion