Удаленный сервер VSCode. sh не обнаруживает узел в wsl docker -desktop - PullRequest
0 голосов
/ 17 июня 2020

У меня:

VSCode v1.46.0

remote-wsl extension v0.44.3

Windows 10 Сборка ОС 19041.329

Docker Desktop v2.3.0.3

Я пытаюсь открыть VSCode в docker -desktop wsl и каждый раз получаю ошибку, указанную ниже. Я перешел в указанный каталог и увидел файл узла. Я не уверен, что делать?

[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

1 Ответ

0 голосов
/ 19 июня 2020

Проблема в том, что vscode-server, который установлен на WSL, несовместим с дистрибутивом, предоставленным Docker Desktop. Вы должны использовать официальный дистрибутив Linux из Microsoft Store, то есть Ubuntu.

Дистрибутив docker -desktop поступает от Alpine Linux, который основан на варианте lib c под названием musl-lib c. Но vscode-server, который устанавливается расширением wsl, построен на glib c.

Вы можете увидеть это, сделав это в 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 с расширением Remote Container. Например, начиная с 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 или расширение контейнера.

Некоторые ссылки на этом топе c:

...