GitHub Codespaces

от автора

Всем привет, меня зовут Макарий Балашов. Я SRE в Ak Bars Digital, но в свободное время люблю чуть-чуть покодить и запушить это все на GitHub. Недавно заметил там Codespaces и решил разобраться для себя, что это и зачем оно нужно. Вот что у меня получилось.

Что же это такое?

Это VSCode у тебя в браузере, запущенный в заранее описанном окружении (devcontainer) или в стандартном, в который входит python, node.js, Docker и прочее. Все это крутится в облаке и бесплатно за первые 60 часов в месяц.

Для кого это?

Если у тебя под руками только планшет, хромбук или допотопный ноутбук, то, как мне кажется, это идеальный вариант, если надо что-то накодить или поправить в проекте, который лежит на гитхабе.

Как попасть в Codespaces?

Достаточно просто открыть необходимый вам репозиторий и нажать на яркую зеленую кнопку code, перейти в codespaces и тыкнуть в Create codespace on main (ну или на другой бранче)

Про devcontainers

Если ты активный пользователь VSCode, то уже мог слышать про devcontainers — расширение для VSCode, которое позволяет использовать Docker-контейнер, как полнофункциональное окружение для разработки. Полную доку можно найти на их сайте — https://containers.dev/ 

Самый простой способ создать конфиг — запустить стандартный codespaces, найти в списке команд VSCode  Codespaces: Add Dev Container Configuration Filesи протыкать в выпадающем меню все, что тебе нужно в проекте, например, в моем случае это был nodejs16 без дополнительных фич, вот что у меня получилось:

{ "name": "Node.js", "image": "mcr.microsoft.com/devcontainers/javascript-node:16", "features": {} }

Далее я отредактировал конфигурационный файл, подстроил его под себя, получилось следующее:

{ "name": "Node.js", "image": "mcr.microsoft.com/devcontainers/javascript-node:16", "forwardPorts": [5173, 4173, 4000], "postCreateCommand": "yarn install", "customizations": { "vscode": { "extensions": [ // Common plugins for every repo in GitHub "Makashi.dark-purple", "me-dutour-mathieu.vscode-github-actions", "Gruntfuggly.todo-tree", // Specific for web-page(Vue3 + Vite) project "esbenp.prettier-vscode", "Vue.volar", "antfu.vite", "dbaeumer.vscode-eslint" ] } } }

Немного про параметры, которые я добавил:

  • forwardPorts — порты контейнера, которые переадресуются. При их использовании появляется сообщение, которое предлагает открыть новую вкладку, где мы увидим контент с этого порта:

  • postCreateCommand — команда, которая запустится после создания контейнера;

  • customizations — кастомизация под себя, в данном примере — список расширений, которые нужны мне в этом проекте. Теперь при запуске codespaces у меня будет создаваться контейнер с nodejs, yarn и расширениями которые мне нужны в этом проекте.

Мое мнение

Как по мне — это очень быстрый и удобный способ начать писать код в любой подходящий, или не очень, момент на любом устройстве с интернетом у вас под рукой. Сам я собираюсь дальше использовать codespaces для своих петпроектов и 60 часов в месяц мне хватит с головой.


ссылка на оригинал статьи https://habr.com/ru/company/akbarsdigital/blog/703554/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *