VSСode. Как настроить окружение для разработки в Docker на удаленном сервере через SSH
Подключиться через SSH к удаленной машине через VSСode. Для этого выберем Command Palette
из меню View
, вводим >
и выбираем команду Remote SSH: Connect to Host...
.
Вот так примерно будет выглядеть палитра команд (Command Palette)
После этого необходимо выбрать хост или ввести команду, по которой вы подключаетесь в терминале.
Выбираем хост из предложенных.
Список решил закрыть по причине безопасности
А тут вводим команду подключение, как в терминале
Если нужного хоста нет, необходимо также указать расположение конфигурации SSH-клиента. Обычно, это ~/.ssh/config
Окно выбора конфигурации SSH
После настройки можно зайти на машину через IDE
Открыть репозиторий через Docker-контейнер. Для этого:
— Зайдем в репозиторий
Это можно сделать через меню
И выбрать репозиторий
— Создаем папку .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
пользователя такого же, который используется Вами на удаленной машине.