【问题标题】:VSCode remote server.sh not finding node in wsl docker-desktopVSCode 远程 server.sh 在 wsl docker-desktop 中找不到节点
【发布时间】:2020-06-17 20:38:57
【问题描述】:

我有:

VSCode v1.46.0

remote-wsl 扩展 v0.44.3

Windows 10 操作系统内部版本 19041.329

Docker 桌面 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 中打开窗口时遇到了同样的问题。我有一个并行的远程容器窗口,其中 vs 代码服务器的相同代码在 docker 容器内执行。所以我想,docker-desktop 发行版中缺少一些东西来启动节点。通过指向本地节点安装替换节点对我没有帮助。仍在进一步调查。

标签: visual-studio-code windows-subsystem-for-linux remote-server docker-desktop


【解决方案1】:

今天遇到了一个非常相似的问题。 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-server。重新安装WSL 扩展以重建损坏的文件。

【讨论】:

    【解决方案2】:

    问题是,安装到 WSL 的 vscode-server 与 Docker Desktop 提供的发行版不兼容。您应该使用来自 Microsoft Store 的官方 Linux 发行版,即 Ubuntu。

    docker-desktop 发行版来自 Alpine Linux,它基于名为 musl-libc 的 libc 变体。但是由 wsl 扩展安装的 vscode-server 是针对 glibc 构建的。

    您可以通过在 wsl 中执行此操作来看到这一点: apk update && apk add binutils 然后

    readelf -l /root/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/node | grep "program interpreter"
          [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
    

    但在 Alpine 中,此库不存在,这就是错误消息报告 not found 的原因。

    所以我想知道,为什么 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]
    

    出于某种原因,Remote-Container 扩展对 Alpine 有一些检测机制,并且使用了不同版本的 vscode 服务器。我的建议是,您可以针对此问题在 https://github.com/microsoft/vscode-remote-release/issues 上提出问题。 否则,请使用其他 WSL 发行版或使用容器扩展。

    关于这个主题的一些参考资料:

    【讨论】:

      【解决方案3】:

      在我的情况下,解决方法是:

      • 打开 Docker for Windows 设置
      • 取消勾选“使用 WSL 2 基础引擎”,然后点击“应用并重新启动”
      • 再次勾选“使用 WSL 2 基础引擎”,然后点击“应用并重新启动”

      下次我运行“远程 WSL:新窗口”时,它再次正确连接

      【讨论】:

      • 更新 docker 后这对我有用。我在 WSL 上收到错误 .vscode-server/server-env-setup not found。谢谢
      猜你喜欢
      • 2023-02-16
      • 2021-11-27
      • 1970-01-01
      • 2020-02-02
      • 2019-05-02
      • 1970-01-01
      • 2019-02-11
      • 2020-12-09
      • 2022-10-21
      相关资源
      最近更新 更多