Задать вопрос
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 (если не ошибаюсь) тоже какие-нибудь инструкции или ресурсы кто с этим занимается.

Помогите, пожалуйста, Витичке нужна ваша помощь. Не оставайтесь равнодушными.
  • Вопрос задан
  • 1923 просмотра
Подписаться 6 Средний 1 комментарий
Решения вопроса 2
yarosroman
@yarosroman
C# the best
dotnet publish -o [путь] -c release -r linux-x64 команда для компиляции и публикации приложения под линукс. Как поднять apache, nginx в качестве прокси, есть куча инфы. Как запустить сервис под линуксом, тоже.
Ответ написан
Комментировать
@WinnerIT
Программист и фотограф-любитель
Если Вы с английским дружите: статья на сайте Скота Ханзельмана (SCOTT HANSELMAN), известного разработчика в области ASP.Net/Core. Должен сразу предупредить, что с одного клика не получится. Как Вы уже сами писали, придется поковыряться в Docker.
Вопрос: можно ли запускать эти контейнеры на винде при разработке? или как вообще поступать в такой ситуации?
Ответ: да. Вы готовите контейнер. Используете его в разработке, а потом выкатываете его уже на боевой Raspberry.

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

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

Как уже писал oxidmod смотрите в сторону CI\CD
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
2ord
@2ord
Если нужно опубликовать свое приложение в "интернетах", то проще использовать PaaS Heroku.
Тогда не нужны никакие "малины".
Deploy asp.net core 2.0 apps on Heroku
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы