VSСode. Как настроить окружение для разработки в Docker на удаленном сервере через SSH
Подключиться через SSH к удаленной машине через VSСode. Для этого выберем Command Palette
из меню View
, вводим >
и выбираем команду Remote SSH: Connect to Host...
.
![Вот так примерно будет выглядеть палитра команд (Command Palette)](https://habrastorage.org/r/w1560/getpro/habr/upload_files/fc3/4a4/e3b/fc34a4e3bff886338e3d35d8c5f0ae7e.png)
Вот так примерно будет выглядеть палитра команд (Command Palette)
После этого необходимо выбрать хост или ввести команду, по которой вы подключаетесь в терминале.
![Выбираем хост из предложенных. Список решил закрыть по причине безопасности](https://habrastorage.org/r/w1560/getpro/habr/upload_files/655/8ea/1b1/6558ea1b1794b045a099d551197acbbf.png)
Выбираем хост из предложенных.
Список решил закрыть по причине безопасности
![А тут вводим команду подключение, как в терминале](https://habrastorage.org/r/w1560/getpro/habr/upload_files/cbd/8d4/061/cbd8d4061b3a04e2575616cf5342433a.png)
А тут вводим команду подключение, как в терминале
Если нужного хоста нет, необходимо также указать расположение конфигурации SSH-клиента. Обычно, это ~/.ssh/config
![Окно выбора конфигурации SSH](https://habrastorage.org/r/w1560/getpro/habr/upload_files/810/7d2/dd4/8107d2dd4751e708de154f5f17fe6e96.png)
Окно выбора конфигурации SSH
После настройки можно зайти на машину через IDE
Открыть репозиторий через Docker-контейнер. Для этого:
— Зайдем в репозиторий
![Это можно сделать через меню](https://habrastorage.org/r/w1560/getpro/habr/upload_files/610/571/5eb/6105715eba27df507c3d36238112df2a.png)
Это можно сделать через меню
![И выбрать репозиторий](https://habrastorage.org/r/w1560/getpro/habr/upload_files/350/309/a11/350309a11021b46eb03109211cb32063.png)
И выбрать репозиторий
— Создаем папку .devcontainer
— Создаем файлы devcontainer.json
и Dockerfile.dev
.
devcontainer.json
хранит метаданные для настройки окружения для разработки в виде словаря. Подробнее можно почитать здесь. Потребуются следующие параметры:
— name
— имя проекта, которое будет отображаться в самом редакторе. В текущем примере это i.lucky_dev_lightning
— context
— контекст, в котором будет идти разработка (иными словами, репозиторий, который будет корневым). В текущем примере, это просто ..
(уходим на уровень выше папки .devcontainer
)
— dockerFile
— имя docker-файла, по которому будет создаваться образ → сам контейнер. В текущем примере это Dockerfile.dev
.
— extensions
— перечень расширений, которые необходимы для работы над проектом. Более детально про расширения можно посмотреть здесь. Имена расширений здесь имеют следующий вид:
Здесь важно фиксировать версию каждого расширения, потому что может случиться неожиданная ситуация, в результате которой работа может затянутся (встроенный линтер внезапно начнет выдавать ошибки, которых раньше не было, тесты не начнут заводиться из редактора и пр.). Обычно для работы с проектами на Python
я использую следующий набор расширений:
[
"ms-python.python@2022.18.2", // для работы на Python
"eamodio.gitlens@12.1.1", // надстройка для работы с git
"GrapeCity.gc-excelviewer@4.2.55", // редактор таблиц
"njpwerner.autodocstring@0.6.1", // автодобавление docsting
"KevinRose.vsc-python-indent@1.17.0", // автовыравнивание
"RobbOwen.synthwave-vscode@0.1.14", // просто цветовая схема (можно не брать)
"kaih2o.python-resource-monitor@0.1.9" // мониторинг использования RAM/CPU (можно не брать)
]
— runArgs
— список параметров, которые будут использовать для команды run
контейнера. В текущем примере я использую:
[
"--name",
"i.lucky_dev_lightning"
]
— remoteUser
— задание non-root
пользователя такого же, который используется Вами на удаленной машине.