#c_sharp #администрирование #docker #aspnet_core #docker_compose
У нас стартап и мы все еще активно пополняемся единомышленниками, но наш продукт уже в скором времени близится к пилотному запуску. ПО наше состоит из следующих модулей: API — проект ASP.NET Core Web API 2 MySQL Web-клиент — приложение на Angular 5. Мы не скрестили ASP.NET Core и Angular, а разрабатываем веб-клиент Angular отдельно с Node.js на борту. Стоит задача, организовать стратегию менее безболезненного развертывания всех трех узлов на инфраструктуре клиента, естественно с учетом того что будет написан туториал по инсталяции и что установкой будет заниматься техническая служба клиента. Операционная система, которая будет крутиться на сервере клиента неизвестна и хотелось сделать некий универсальный процесс инсталяции который подходил бы как на Windows так и для Linux. Понятное дело, что за универсальность надо платить. Как писал выше, мы только развивающийся отряд, и мы не имеем пока еще в арсенале хорошего специалиста-администратора с большим опытом решения подобных задач по развертыванию. Docker. Докер, Docker и еще раз Докер. Естественно в первую очередь программисту приходит в голову это ПО одной из задач (я сказал одной из) которого является избавить программиста от проблем развертывания и дать максимально сфокусироваться на кодинге. Ох если бы это было так. Прокси-сервер. И как не крути, но плюс к Kestrel/HTTP.sys какой-то из серверов Apache, IIS, nginx и т.д. все же нужен на сколько понял я. Даже если клиент планирует работать с нашим продуктом только внутри корпоративной сети. Дела с HTTP.sys конечно лучше: он не такой голый как Kestrel, но у нас то речь об универсальности, а HTTP.sys только для Windows. Пытался к примеру установить nginx на Windows Server в качестве эксперимента: мама родная, со стороны казалось, что я в первый раз вижу компьютер). И если можно я задал бы два вопроса: 1) Первый вопрос он более общий, вы наверное догадались: что посоветуете? 2) А теперь, чтобы конкретизироваться: я сейчас работаю на Windows 10 и если я задумал использовать Docker, то я ведь правильно понимаю, что мне надо создать четыре контейнера Контейнер с прокси-сервером (Apache, nginx или IIS) Контейнер с СУБД MySQL Контейнер с Angular-приложением Контейнер с проектом ASP.NET Core 2 Web API Можно ли это сделать прямо из Windows? То есть будет ли работать контейнер созданный на Windows-машине на Linux?
Ответы
Ответ 1
Docker под Windows может работать в двух режимах - Windows Containers и Linux Containers. Режимы переключаются через иконку в трее: В режиме Windows Containers он собирает и хостит контейнеры прямо в текущей операционке. Собранные в этом режиме контейнеры нельзя разместить под Linux. В режиме Linux Containers он на самом деле собирает и запускает контейнеры на линуксовой виртуалке - она видна в Hyper-V Manager. Собранные в этом режиме контейнеры можно разместить под Linux. Под каждый рантайм есть свой набор тэгов - все доступные можно посмотреть на https://hub.docker.com/r/microsoft/aspnetcore/ Т.е. да, вы можете включить режим Linux Containers, собрать набор из 4-х контейнеров (взяв nginx в качестве прокси), и потом запустить все это под Linux.
Комментариев нет:
Отправить комментарий