Jeer
@Jeer
уверенный пользователь

Как чайнику захостить .net core на Raspberry Pi3?

Доброго дня!
Я занимаюсь веб разработкой на майрософтовском стеке. Мне нравится винда, нравится visual studio, нравится писать на c#, я разобрался с IIS. Если что-то нужно, то через удалённый рабочий стол захожу на сервер, там практически такая же винда, тыкаю мышкой по кнопкам и делаю что необходимо. С этим нет проблем на работе, есть всякие оплаченные лицензии, но когда я делаю проекты для себя, то аренда хостинга с виндовыми лицухами стоит гораздо дороже, чем сервера на линуксе. Плюс периодически проскакивают истории, как компания писала на .net стеке, а сверху приходит распоряжение мигрировать на опен сорц и начинается какой-то ад (хотя это звоночек, что нужно сваливать из такой компани).

Проблема в том, что я абсолютно не втыкаю в линукс.

Появился вот .net core, его вроде как можно запускать на никсовых серверах. Я пытался посмотреть (в целях самообразования) как это сделать - несколько листов каких-то иероглифов (непонятных мне команд) чтобы настроить сервер. Потом поднятие каких-то проксирующих веб серверов. Приложение хостится на одном сервере, поднимается nginx, всё это каким-то волшебством связывается. Потом чуть ли не вручную выдираешь dll из своего проекта, их нужно как-то по особому то ли вручную скомплировать то ли хрен его знает что там вообще нужно, вручную перетаскиваешь, не забыв окропить святой водой и перекрестить, и вуаля, всё работает (или нет). На виндовом же сервере, если есть возможность, то один раз залезаю, настраиваю WebPublish в несколько кликов, забираю профиль и публикую проект одной кнопкой за несколько секунд. Если нет такой возможности, то есть фтп, подольше всё делается, но так же одной кнопкой из студии публикуется. После такого удобства, я даже начать не могу ковыряться с линуксом.

Недавно у меня появился Raspberry Pi 3, в котором прям так и говорится: "Это просто маленький компьютер с линуксом. Если хотите попробовать свои силы в изучении линукса, но боитесь ставить его на домашнюю машину, то малина именно то, что вам нужно. Даже если вы полностью закосячите, просто переустанавливаете на флешку чистый образ и занимаетесь дальше. Никаких проблем, никакой ответственности".

И я опять пришел к проблеме, озвученной в начале. Проблема в том, что я тупой. Я могу взять флешку. Залить туда образ любого линукса, допустим, Ubuntu 16.04, а дальше-то чего? Я даже не знаю, как туда залезть и начать чего-то устанавливать. Предположим. Просто представим, что я подниму весь этот шаманизм и заставлю его работать. Чтобы запустить там моё приложение, мне нужно будет его каким-то чудом, чуть ли не вручную правя бинарники, корректно скомпилировать, вручную перетащить файлы и вручную запустить. И это нужно будет делать каждый раз при каждом обновлении. И вишенкой на торте нужно будет опять что-то настраивать в неизвестном мне мире, чтобы прицепить статический айпи от провайдера, чтобы запустить сайт в интернетах. От осознания такой перспективы у меня начинает болеть живот.

И я где-то в глубинах души понимаю, что так быть не должно. Должны быть какие-то гладкие и изящные решения, но я даже не знаю, какие вопросы задавать всемогущему гуглу. У меня нет друзей или знакомых хоть частично соприкасающимися с этими технологиями и я не знаю, где можно найти людей, увлечённых именно этой тематикой или ресурсы по ней (желательно русскоязычные, ясен банан). Я слышал, что есть такая технология Docker - это вроде как единоразовая настройка сервера и так как у меня разнородные среды (разработка/отладка в винде и хостинг на линуксе), то его прямо-таки необходимо использовать. С ним я раньше не сталкивался, так как не было необходимости.
Вопрос: можно ли запускать эти контейнеры на винде при разработке? или как вообще поступать в такой ситуации?
Я так понимаю, что вот с этими всеми настройками мне может помочь кто-то со стороны, мне это не особо интересно, мне нравится заниматься разработкой, писать сайты, а не вот это вот всё. Но я не знаю, где искать человека, который сможет? Я могу проставиться, либо заплатить каких-то денег, но не знаю, что должно быть у такого специалиста в навыках, чтобы искать, к примеру, на фрилансе.

Итак, задача: запустить веб сайт на домашней Raspberry Pi в интернет.
Условия: Разработка на .net core в винде в visual studio. Публикация, если возможно, одной кнопкой. Хостинг на малине.
Вопросы:
1. Инструкция для чайников что и как ставить в такой ситуации ставить на распберри.
2. Инструкция для чайников как протащить белые айпишники и сделать доступным сайт в интернетах.
3. Как настроить рабочий процесс по публикации и отладке такой среды - разработка на винде публикация в ARM32 (если не ошибаюсь) тоже какие-нибудь инструкции или ресурсы кто с этим занимается.

Помогите, пожалуйста, Витичке нужна ваша помощь. Не оставайтесь равнодушными.
  • Вопрос задан
  • 1376 просмотров
Пригласить эксперта
Ответы на вопрос 4
@WinnerIT
Программист и фотограф-любитель
Если Вы с английским дружите: статья на сайте Скота Ханзельмана (SCOTT HANSELMAN), известного разработчика в области ASP.Net/Core. Должен сразу предупредить, что с одного клика не получится. Как Вы уже сами писали, придется поковыряться в Docker.
Вопрос: можно ли запускать эти контейнеры на винде при разработке? или как вообще поступать в такой ситуации?
Ответ: да. Вы готовите контейнер. Используете его в разработке, а потом выкатываете его уже на боевой Raspberry.

1. Инструкция для чайников что и как ставить в такой ситуации ставить на распберри.
Смотрите ссылку выше.

2. Инструкция для чайников как протащить белые айпишники и сделать доступным сайт в интернетах.
У вас есть белый IP? Если да - прописываете его в доменной зоне у регистратора, а потом настраиваете его как IP- адресс на Raspberry. Только если у вас есть средства на белый IP, зачем этот весь гемор с Raspberry. Самый дешевый VPS хостинг сейчас стоит копейки и как правило там один белый адресс уже включен. Вы Docker контейнер можете накатить и на Линукс на VPS.
Если нет - Вам нужен динамический DNS.
3. Как настроить рабочий процесс по публикации и отладке такой среды - разработка на винде публикация в ARM32 (если не ошибаюсь) тоже какие-нибудь инструкции или ресурсы кто с этим занимается.

Как уже писал oxidmod смотрите в сторону CI\CD
Ответ написан
@oxidmod
1. Просто поставь линукс второй системой или подними виртуалку на крайняк.
2. Выбираешь платформу для компиляции и получаешь исполнительный файл, просто он не exe
3. CI\CD - в нете полно информации
Ответ написан
yarosroman
@yarosroman
C# the best
dotnet publish -o [путь] -c release -r linux-x64 команда для компиляции и публикации приложения под линукс. Как поднять apache, nginx в качестве прокси, есть куча инфы. Как запустить сервис под линуксом, тоже.
Ответ написан
2ord
@2ord
продвинутый чайник
Если нужно опубликовать свое приложение в "интернетах", то проще использовать PaaS Heroku.
Тогда не нужны никакие "малины".
Deploy asp.net core 2.0 apps on Heroku
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Почта Банк Москва
от 200 000 до 240 000 ₽
EPAM Санкт-Петербург
от 120 000 до 170 000 ₽
КАНРУС Санкт-Петербург
от 150 000 ₽