Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code VSCode remote server.sh在wsl docker desktop中找不到节点_Visual Studio Code_Windows Subsystem For Linux_Remote Server_Docker Desktop - Fatal编程技术网

Visual studio code VSCode remote server.sh在wsl docker desktop中找不到节点

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.

我有:

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.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桌面发行版中缺少了一些东西来启动节点。通过指向本地节点安装来替换节点对我没有帮助。仍在进一步调查。