Развертывание базового приложения ASP. NET с базой данных в контейнере docker - PullRequest
0 голосов
/ 31 марта 2020

Я создал базовое веб-приложение ASP. NET, в котором есть база данных, подключенная к контейнеру docker, который я хотел бы развернуть в Интернете, чтобы сделать его доступным на любом компьютере или мобильном устройстве с помощью URL-адреса. в веб-браузере.

Вот мои настройки приложения. json код приложения:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "default": "Server=localhost,9999;Database=dbweb;User Id=sa; Password=Dbwebsql1234;MultipleActiveResultSets=true"
  }
}

На данный момент приложение работает только на локальном хосте через этот URL: https://localhost: 5001 / , и его база данных подключена к контейнеру docker с именем dbweb, который использует образ ms sql -server- linux: последний. Его порт docker равен 1433, а (MA C IP: порт) - 9999. База данных запускается локально, когда я подключаюсь к ней через Azure, имя сервера - «localhost, 9999». Несмотря на то, что я искал много источников в Интернете и смотрел похожие вопросы по этой теме c, я не могу найти четкого решения для развертывания моего приложения. Я хотел бы знать, если необходимо создать сервер linode linux или любой удаленный сервер, подключиться к этому серверу через s sh на терминале и создать новый контейнер docker для моей базы данных на этом сервере, так как а также клонирование репозитория исходного кода веб-приложения с github на этот удаленный сервер. Было бы лучше создать еще один vm-сервер, на котором будет размещен контейнер docker для sqlserver, к которому будет подключаться мое приложение, или есть гораздо лучший способ? Я планировал использовать nginx для размещения моего приложения на удаленном сервере VM. Кстати, я на Ма c ОС. Я нахожусь в поиске более простого способа сделать процесс развертывания намного проще. Спасибо.

1 Ответ

0 голосов
/ 01 апреля 2020

Существуют различные способы достижения того, что вы пытаетесь сделать.

Вариант a:

Если вы хотите полностью контролировать инфраструктуру вашего сервера (ЦП, ОЗУ, Память), go с предложением Azure IaaS. 1. Создайте Azure Виртуальную машину с нужной вам ОС 2. Установите asp. net основной сервер хостинга веб-приложений, упакуйте свое приложение, настройте хост-сервер и разверните пакет 3. Установите Docker 4. Создайте Создайте образ в AZ VM, как вы делали это на своем локальном сервере MS sql и запустите контейнер. 5. Создайте publi c IP, чтобы подключить вашу виртуальную машину через inte rnet и настроить DNS с полным доменным именем.

Вариант b:

a) PaaS - сервисы Azure для размещения вашего основного веб-приложения asp. net [нет необходимости поддерживать ОС / сервер хостинга + Вы можете выбрать между linux / Windows ОС. Полностью управляется Azure] и

b) PaaS - ACI (Azure Контейнерные экземпляры) для вашего сервера базы данных / базы данных [В ACI нет необходимости поддерживать ОС или Docker. Он полностью управляется Azure].

Кроме того, ACI предоставляет публичные c IP и DNS-метки FQDN (полное доменное имя), которые вы можете использовать в строке подключения вашего веб-приложения в качестве имени вашего db-сервера. Вы можете использовать его для подключения к вашей базе данных через SSMS или Azure data studio с вашего локального компьютера для прямой проверки ваших данных.

Примечание. Для ACI требуется изображение docker, хранящееся в реестре (DockerHub / Azure контейнерный регистр / личный реестр)

Начиная с пошагового руководства, вы можете найти:

ACI: https://www.mssqltips.com/sqlservertip/6180/create-azure-container-instances-for-sql-server/

https://www.mssqltips.com/sqlservertip/6262/connect-to-and-monitor-sql-server-azure-container-instances-aci/

https://github.com/dotnet-architecture/eShopModernizing/wiki/05.-Deploying-the-Apps-to-ACI- (Azure -Container-Instances)

Служба приложений: https://docs.microsoft.com/en-us/visualstudio/mac/publish-app-svc?toc=%2Faspnet%2Fcore%2Ftoc.json&bc=%2Faspnet%2Fcore%2Fbreadcrumb%2Ftoc.json&view=vsmac-2019&viewFallbackFrom=aspnetcore-3.1

После настройки начальной конфигурации вы можете ускорить развертывание (CI / CD) с помощью Azure DevOps.

https://azure.microsoft.com/en-us/solutions/devops/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...