Visual studio code VSCode remote server.sh在wsl docker desktop中找不到节点
我有: VSCode v1.46.0 远程wsl扩展v0.44.3 Windows 10操作系统版本19041.329 Docker Desktop v2.3.0.3 我试图在docker desktop wsl中打开VSCode,每次都会出现以下错误。我已经转到列出的目录,看到了节点文件,我不知道该怎么办Visual studio code VSCode remote server.sh在wsl docker desktop中找不到节点,visual-studio-code,windows-subsystem-for-linux,remote-server,docker-desktop,Visual Studio Code,Windows Subsystem For Linux,Remote Server,Docker Desktop,我有: VSCode v1.46.0 远程wsl扩展v0.44.3 Windows 10操作系统版本19041.329 Docker Desktop v2.3.0.3 我试图在docker desktop wsl中打开VSCode,每次都会出现以下错误。我已经转到列出的目录,看到了节点文件,我不知道该怎么办 [2020-06-17 20:30:27.337] Resolving wsl+docker-desktop, resolveAttempt: 1 [2020-06-17 20:30:27.
[2020-06-17 20:30:27.337] Resolving wsl+docker-desktop, resolveAttempt: 1
[2020-06-17 20:30:27.462] Starting VS Code Server inside WSL (docker-desktop)
[2020-06-17 20:30:27.463] Extension version: 0.44.3, Windows build: 19041. Multi distro support: available. WSL path support: enabled
[2020-06-17 20:30:27.751] Probing if server is already installed: C:\WINDOWS\System32\wsl.exe -d docker-desktop -e sh -c "[ -d ~/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321 ] && printf found || ([ -f /etc/alpine-release ] && printf alpine-; uname -m)"
[2020-06-17 20:30:28.100] Probing result: found
[2020-06-17 20:30:28.100] Server install found in WSL
[2020-06-17 20:30:28.101] Launching C:\WINDOWS\System32\wsl.exe -d docker-desktop sh -c '"$VSCODE_WSL_EXT_LOCATION/scripts/wslServer.sh" a5d1cc28bb5da32ec67e86cc50f84c67cc690321 stable .vscode-server 0 ' in c:\Users\Eric\.vscode\extensions\ms-vscode-remote.remote-wsl-0.44.3}
[2020-06-17 20:30:28.345] Setting up server environment: Looking for /root/.vscode-server/server-env-setup. Not found.
[2020-06-17 20:30:28.345] WSL version: 4.19.104-microsoft-standard docker-desktop
[2020-06-17 20:30:28.345] WSL2-shell-PID: 1036
[2020-06-17 20:30:28.345] Starting server: /root/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/server.sh --port=0 --use-host-proxy --enable-remote-auto-shutdown
[2020-06-17 20:30:28.347] /root/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/server.sh: line 12: /root/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/node: not found
[2020-06-17 20:30:28.347] VS Code Server for WSL closed unexpectedly.
[2020-06-17 20:30:28.347] For help with startup problems, go to
[2020-06-17 20:30:28.347] https://code.visualstudio.com/docs/remote/troubleshooting#_wsl-tips
[2020-06-17 20:30:29.404] WSL Daemon exited with code 0
问题是,安装到WSL的vscode服务器与Docker Desktop提供的发行版不兼容。您应该使用微软商店的正式Linux发行版,即Ubuntu docker桌面发行版来自Alpine Linux,它基于一个名为musl libc的libc变体。但是由wsl扩展安装的vscode服务器是针对glibc构建的 通过在wsl中执行以下操作,可以看到这一点:
apk更新和&apk添加binutils
然后
readelf -l /root/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/node | grep "program interpreter"
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
但在Alpine中,此库不存在,因此错误消息报告未找到
所以我想知道,为什么vscode服务器在一个带有远程容器扩展的Alpine容器中工作。例如,启动alpine:3.9时,上述检查显示以下内容:
readelf -l /root/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/node | grep "program interpreter"
[Requesting program interpreter: /lib/ld-musl-x86_64.so.1]
出于某种原因,远程容器扩展对Alpine具有某种检测机制,并且正在使用不同的vscode服务器构建。我的建议是,你可以就这个问题提交一个问题。
否则,请使用另一个WSL发行版或使用容器扩展
有关此主题的一些参考资料:
- 即使是WSL的阿尔卑斯山也应该是可行的
- 打开Windows设置的Docker
- 取消选中“使用WSL 2基本引擎”,然后单击“应用并重新启动”
- 再次勾选“使用WSL 2基本引擎”,然后单击“应用并重新启动”
下一次我运行“远程WSL:New Window”时,它再次正确连接今天出现了非常类似的问题。VScode工作了很长时间,今天突然停止
/home/user/.vscode-server/bin/b5afea7e86cc50f84c67cc690321/server.sh --port=0 --use-host-proxy --enable-remote-auto-shutdown
VS Code Server for WSL closed unexpectedly
在WSL
控制台中,server.sh
不知何故是空的我的解决方案:删除
WSL
扩展<代码>rm-rf./vscode服务器。重新安装WSL扩展名以重建损坏的文件。在WSL中打开窗口时,我也遇到同样的问题。我有一个并行的远程容器窗口,其中vs代码服务器的相同代码在docker容器内执行。所以我想,docker桌面发行版中缺少了一些东西来启动节点。通过指向本地节点安装来替换节点对我没有帮助。仍在进一步调查。