Проблема в том, что 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: