🐣

解決法:wslからvscodeを起動したらReopen in Container出来ない場合

2024/11/09に公開

エラー概要

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