В 2019 году Microsoft выпустила расширения для удаленной разработки, которые позволяют нам использовать VS Code локально для разработки приложений «удаленно» в подсистеме Windows для Linux (WSL), в контейнерах docker и на удаленных физических или виртуальных машинах, управляемые по SSH. В 2020 году компания сделала еще один шаг вперед в области удаленной разработки с помощью GitHub Codespaces, которые позволяют использовать VS Code локально или в браузере для разработки приложений на удаленной виртуальной машине, размещаемой и управляемой в облаке.
Microsoft может это сделать, потому что VS Code по своей конструкции является многопроцессным приложением. Концептуально, фронт-энд (где мы набираем код) работает в одном процессе, а бэк-энд (где размещаются расширения, терминал, отладка и т. д.) работает в отдельном процессе.
06.08.2022.01.png102.12 KB
7 июля Microsoft выпустила закрытую предварительную версию внутренней службы, которая делает все это возможным - «VS Code Server» - вместе с CLI, который упрощает установку, обновление, управление и подключение к службе. Мы можем установить сервер где угодно (на локальной машине для разработки, на виртуальной машине в облаке и т. д.) и получить безопасный доступ к нему через браузер, используя VS Code for the Web (также известный как vscode. dev), без необходимости настраивать SSH или https (хотя мы можем сделать и это, если захотим).
Начало работы
Поскольку служба, которую мы используем для безопасного подключения к VS Code Server, на данный момент находится в стадии закрытого предварительного просмотра, нам нужно будет запросить доступ через форму регистрации. Когда мы сможем начать пользоваться сервисом на почту должно придти письмо со всей необходимой информацией.
Ниже приведены пошаговые инструкции для быстрого начала работы:
1) Устанавливаем VS Code Server на удаленной машине (или там, где мы хотим вести разработку).
Примечание: Для разных удаленных архитектур существуют разные команды установки, которые мы можем просмотреть в документации по серверу. В этом посте мы установим VS Code Server в экземпляр Windows Subsystem for Linux (WSL), который обеспечивает настоящую изолированную среду Linux на Windows и может служить сервером в качестве нашей «удаленной» изолированной машины.
Выполняем следующую команду в терминале WSL:
wget -O- https: //aka. ms/install-vscode-server/setup. sh | sh
2) Запускаем сервер VS Code Server, выполнив следующую команду в терминале WSL:
code-server
Совет: Выполните code-server -h, чтобы увидеть все доступные команды для запуска и управления сервером.
3) Наш дистрибутив WSL будет взаимодействовать с vscode. dev через защищенный туннель, что позволит нам подключаться к вашему компьютеру с vscode. dev, независимо от того, в какой сети вы находитесь.
Нам будет предоставлен код устройства и URL-адрес для аутентификации нашей учетной записи GitHub в службе безопасного туннелирования VS Code Server:
Please enter the code 7644-1186 on https: //github. com/login/device
Авторизуемся в службе туннелирования, введя код устройства на предоставленном auth URL.
4) Если мы впервые запускаем VS Code Server из данного экземпляра WSL, нам будет предложено ввести имя для вашего соединения.
CLI предложит забавное имя «прилагательное-существительное» по умолчанию (примеры показаны ниже), которое мы можем принять:
? What would you like to call this machine? (elegant-pitta) >
5) После аутентификации и указания имени машины CLI запускает экземпляр сервера и генерирует ссылку на vscode. dev.
Чтобы подключиться к экземпляру WSL, мы можем открыть эту ссылку на любом устройстве.
Примечание: Мы также можем подключиться к экземпляру WSL непосредственно из vscode. dev: откроем палитру команд (F1) в vscode. dev и выполним команду Remote Server: Connect to Remote.
Терминал запускает VS Code Server, и vscode.dev подключается к нему
Отлично, мы успешно установили и запустили VS Code Server! Соединение будет полностью установлено, как только мы посетим сгенерированную ссылку на vscode. dev. Файлы нашего дистрибутива WSL должны присутствовать в VS Code Explorer, и мы можем начать писать на нем код из vscode. dev.
Что будет дальше
В настоящее время VS Code Server является закрытой предварительной версией. В этой ранней предварительной версии код-серверной CLI отличается от code CLI, который вы используете сегодня для запуска рабочего стола VS Code, установки расширений и многого другого (для примера запустите code -h из терминала). Это лишь первый шаг на пути к созданию полностью унифицированного code CLI, который позволит нам управлять как рабочим столом, так и сервером.
{"document": [{"text": [{"type": "string", "attributes": {}, "string": "Небольшое предисловие"}], "attributes": ["heading1"]}, {"text": [{"type": "string", "attributes": {}, "string": "В 2019 году Microsoft выпустила расширения для удаленной разработки, которые позволяют нам использовать "}, {"type": "string", "attributes": {"bold": true}, "string": "VS Code"}, {"type": "string", "attributes": {}, "string": " локально для разработки приложений «удаленно» в подсистеме Windows для Linux (WSL), в контейнерах "}, {"type": "string", "attributes": {"bold": true}, "string": "docker "}, {"type": "string", "attributes": {}, "string": "и на удаленных физических или виртуальных машинах, управляемые по "}, {"type": "string", "attributes": {"bold": true}, "string": "SSH"}, {"type": "string", "attributes": {}, "string": ". В 2020 году компания сделала еще один шаг вперед в области удаленной разработки с помощью "}, {"type": "string", "attributes": {"bold": true}, "string": "GitHub Codespaces"}, {"type": "string", "attributes": {}, "string": ", которые позволяют использовать "}, {"type": "string", "attributes": {"bold": true}, "string": "VS Code"}, {"type": "string", "attributes": {}, "string": " локально или в браузере для разработки приложений на удаленной виртуальной машине, размещаемой и управляемой в облаке."}], "attributes": []}, {"text": [{"type": "string", "attributes": {"italic": true}, "string": "Microsoft может это сделать, потому что VS Code по своей конструкции является многопроцессным приложением. Концептуально, фронт-энд (где мы набираем код) работает в одном процессе, а бэк-энд (где размещаются расширения, терминал, отладка и т. д.) работает в отдельном процессе."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/png", "filename": "06.08.2022.01.png", "filesize": 104567, "height": 1080, "pic_id": 117696, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/08/05/06.08.2022.01.jpeg", "width": 1920}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "7 июля Microsoft выпустила закрытую предварительную версию внутренней службы, которая делает все это возможным - «VS Code Server» - вместе с CLI, который упрощает установку, обновление, управление и подключение к службе. Мы можем установить сервер где угодно (на локальной машине для разработки, на виртуальной машине в облаке и т. д.) и получить безопасный доступ к нему через браузер, используя "}, {"type": "string", "attributes": {"bold": true}, "string": "VS Code for the Web"}, {"type": "string", "attributes": {}, "string": " (также известный как "}, {"type": "string", "attributes": {"bold": true, "href": "https://vscode.dev/"}, "string": "vscode. dev"}, {"type": "string", "attributes": {}, "string": "), без необходимости настраивать "}, {"type": "string", "attributes": {"bold": true}, "string": "SSH "}, {"type": "string", "attributes": {}, "string": "или "}, {"type": "string", "attributes": {"bold": true}, "string": "https "}, {"type": "string", "attributes": {}, "string": "(хотя мы можем сделать и это, если захотим)."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Начало работы"}], "attributes": ["heading1"]}, {"text": [{"type": "string", "attributes": {}, "string": "Поскольку служба, которую мы используем для безопасного подключения к "}, {"type": "string", "attributes": {"bold": true}, "string": "VS Code Server"}, {"type": "string", "attributes": {}, "string": ", на данный момент находится в стадии закрытого предварительного просмотра, нам нужно будет запросить доступ через форму регистрации. Когда мы сможем начать пользоваться сервисом на почту должно придти письмо со всей необходимой информацией."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Ниже приведены пошаговые инструкции для быстрого начала работы:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {"bold": true}, "string": "1) Устанавливаем VS Code Server на удаленной машине (или там, где мы хотим вести разработку)."}], "attributes": []}, {"text": [{"type": "string", "attributes": {"italic": true}, "string": "Примечание: Для разных удаленных архитектур существуют разные команды установки, которые мы можем просмотреть в документации по серверу. В этом посте мы установим VS Code Server в экземпляр Windows Subsystem for Linux (WSL), который обеспечивает настоящую изолированную среду Linux на Windows и может служить сервером в качестве нашей «удаленной» изолированной машины."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Выполняем следующую команду в терминале WSL:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {"italic": true}, "string": "wget -O- https: //aka. ms/install-vscode-server/setup. sh | sh"}], "attributes": ["quote"]}, {"text": [{"type": "string", "attributes": {"bold": true}, "string": "2) Запускаем сервер VS Code Server, выполнив следующую команду в терминале WSL:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {"italic": true}, "string": "code-server"}], "attributes": ["quote"]}, {"text": [{"type": "string", "attributes": {"italic": true}, "string": "Совет: Выполните "}, {"type": "string", "attributes": {"bold": true, "italic": true}, "string": "code-server -h"}, {"type": "string", "attributes": {"italic": true}, "string": ", чтобы увидеть все доступные команды для запуска и управления сервером."}], "attributes": []}, {"text": [{"type": "string", "attributes": {"bold": true}, "string": "3) Наш дистрибутив WSL будет взаимодействовать с vscode. dev через защищенный туннель, что позволит нам подключаться к вашему компьютеру с vscode. dev, независимо от того, в какой сети вы находитесь."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Нам будет предоставлен код устройства и URL-адрес для аутентификации нашей учетной записи GitHub в службе безопасного туннелирования VS Code Server:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {"italic": true}, "string": "Please enter the code 7644-1186 on https: //github. com/login/device"}], "attributes": ["quote"]}, {"text": [{"type": "string", "attributes": {}, "string": "Авторизуемся в службе туннелирования, введя код устройства на предоставленном auth URL."}], "attributes": []}, {"text": [{"type": "string", "attributes": {"bold": true}, "string": "4) Если мы впервые запускаем VS Code Server из данного экземпляра WSL, нам будет предложено ввести имя для вашего соединения."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "CLI предложит забавное имя «прилагательное-существительное» по умолчанию (примеры показаны ниже), которое мы можем принять:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {"italic": true}, "string": "? What would you like to call this machine? (elegant-pitta) >"}], "attributes": ["quote"]}, {"text": [{"type": "string", "attributes": {"bold": true}, "string": "5) После аутентификации и указания имени машины CLI запускает экземпляр сервера и генерирует ссылку на vscode. dev."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Чтобы подключиться к экземпляру WSL, мы можем открыть эту ссылку на любом устройстве."}], "attributes": []}, {"text": [{"type": "string", "attributes": {"italic": true}, "string": "Примечание: Мы также можем подключиться к экземпляру WSL непосредственно из vscode. dev: откроем палитру команд (F1) в vscode. dev и выполним команду "}, {"type": "string", "attributes": {"bold": true}, "string": "Remote Server: Connect to Remote"}, {"type": "string", "attributes": {"italic": true}, "string": "."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"caption": "Терминал запускает VS Code Server, и vscode.dev подключается к нему", "presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/jpeg", "filename": "06.08.2022.02.jpg", "filesize": 382250, "height": 1070, "pic_id": 117697, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/08/05/06.08.2022.02.jpeg", "width": 2400}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Отлично, мы успешно установили и запустили VS Code Server! Соединение будет полностью установлено, как только мы посетим сгенерированную ссылку на vscode. dev. Файлы нашего дистрибутива WSL должны присутствовать в VS Code Explorer, и мы можем начать писать на нем код из vscode. dev."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Что будет дальше"}], "attributes": ["heading1"]}, {"text": [{"type": "string", "attributes": {}, "string": "В настоящее время VS Code Server является закрытой предварительной версией. В этой ранней предварительной версии код-серверной "}, {"type": "string", "attributes": {"bold": true}, "string": "CLI "}, {"type": "string", "attributes": {}, "string": "отличается от "}, {"type": "string", "attributes": {"bold": true}, "string": "code CLI"}, {"type": "string", "attributes": {}, "string": ", который вы используете сегодня для запуска рабочего стола "}, {"type": "string", "attributes": {"bold": true}, "string": "VS Code"}, {"type": "string", "attributes": {}, "string": ", установки расширений и многого другого (для примера запустите "}, {"type": "string", "attributes": {"bold": true}, "string": "code -h"}, {"type": "string", "attributes": {}, "string": " из терминала). Это лишь первый шаг на пути к созданию полностью унифицированного "}, {"type": "string", "attributes": {"bold": true}, "string": "code CLI"}, {"type": "string", "attributes": {}, "string": ", который позволит нам управлять как рабочим столом, так и сервером."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Мы на других платформах:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {"bold": true, "href": "https://t.me/IPsWLz-p8EExOTNi"}, "string": "Telegram"}], "attributes": []}], "selectedRange": [4187, 4191]}
Комментарии 0