Open source
.NET
C#
Development for Linux
6 December 2019

Девелопишь на .NET Core? Го в Ubuntu, я создал

Tutorial
image
Photo by Kevin Horvat
Все 12 лет своей карьеры я работал с .NET и был крепко привязан к Windows и проприетарным инструментам разработки. Но, спасибо Microsoft, .NET Core все изменил и теперь разрабатывать для .NET можно почти на чем угодно и в чем угодно. Дело за малым — перетащить на Core свои проекты. Не так давно я решил и этот вопрос и завел трактор для полного переезда на Ubuntu.

Результат очень понравился — все взлетело, разрабатывать легко, а Docker и Kubernetes сделали процесс переезда намного легче. Но из-за слабого знания ОС, bash и запутанности вариантов установки некоторых инструментов (например, того же Docker) изначальная настройка заняла больше дня. То есть процесс довольно долгий и местами запутанный.

Дабы сэкономить время будущему себе и тем, кто также планирует попробовать разработку под Linux, я оформил все в виде скриптов. Их можно запустить на чистой Ubuntu и они все настроят пока ты сидишь и пьешь чаек. Также, при желании, их легко допилить под свои нужды.

Если для вас это звучит полезно — добро пожаловать под кат.

Скрипты доступны в репозитории на Github. Для их чтения достаточно начального знакомства с bash и они обильно снабжены ссылками. А человек искушенный, скорее всего, найдет в них и неоптимальные моменты (если нашли — сообщите мне, пожалуйста, буду очень вам благодарен).

Полагая, что скрипты будут чаще «дотачиваться» под конкретные нужды, чем использоваться в исходном виде, все тонкие моменты (например, как запустить команду из под текущего пользователя находясь в режиме sudo) также снабжены ссылками.

Итоговый набор состоит всего из пяти файлов — три скрипта и два конфига для kubernetes.

1_opinionated.sh


Простите, но первый же скрипт это главный кандидат на «дотачивание», а то и вовсе пропуск.

Прежде всего, он устанавливает гипервизор для дальнейшего запуска kubernetes. Я выбрал Virtualbox, но также возможен запуск на KVM и вообще без гипервизора. Каждый вариант имеет свои нюансы, поэтому финальный выбор за вами.

Также скрипт устанавливает поддержку русского языка (чтобы я смог написать эту статью).

После запуска необходимо выполнить перезагрузку, чтобы Virtualbox смог себя донастроить перед установкой остальных инструментов.

2_setup.sh


Самый большой и полезный скрипт. Он устанавливает следующие инструменты:

  • Git
  • .NET Core 3.1 SDK
  • Nodejs
  • Docker Community Edition, добавляет репозиторий для обновлений Docker
  • Проверяет что установлен Virtualbox или KVM и устанавливает minikube
  • Устанавливает Visual Studio Code и несколько расширений для разработки как frontend, так и backend: Gitlens, TSLint, Prettier, Stylelint, C#, Docker tools, Kubernetes tools, Kubernetes Support.

3_configure.sh


Выполняет настройку установленных тулзов. А именно:

  • Запрашивает имя и email пользователя Git
  • Опицонально предлагает установить VS Code как редактор по умолчанию для Git
  • Опционально предлагает использовать libsecret для сохранения паролей Git в зашифрованном виде
  • Добавляет текущего пользователя в группу «docker», необходимую для работы с Docker без постоянного использования sudo
  • Стартует minikube и устанавливает dashboard для доступа к кластеру через Web UI
  • Создает в minikube пользователя-админа для доступа к дашборду. Для этого используются файлы minikube_admin_user.yaml и minikube_role_binding.yaml из репозитория.
  • Выводит инструкции по получению токена для доступа к дашборду.

Чтобы применились настройки доступа к docker необходимо разлогиниться и перезапустить сервис docker. Или попросту перезагрузить ОС.

Вот, собственно, и все. Надеюсь, скрипты будут полезны желающим быстро освоиться с Ubuntu и разработкой под .NET Core.
Only registered users can participate in poll.Log in, please.
А вы уже пробовали разработку под .NET Core на Linux?
25.12% Нет, и не планирую. Винда наше все. 51
10.34% Пробовал, не понравилось. 21
26.6% Недавно попробовал, пока все здорово. 54
37.93% Уже давно на Linux сижу и обратно не собираюсь. 77
203 users voted. 84 users abstained.

+16
18.8k 121
Comments 39
Top of the day