繁体   English   中英

使用 docker 容器上的数据库部署 ASP.NET Core 应用程序

[英]Deploying an ASP.NET Core Application with a database that is on a docker container

我构建了一个 ASP.NET Core Web 应用程序,该应用程序具有连接到 docker 容器的数据库,我想将其部署到 Web,使其可以在任何计算机或移动设备上使用 Web 浏览器中的 URL 进行访问。

这是我的应用程序的 appsettings.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"
  }
}

截至目前,该应用程序仅通过以下网址在 localhost 上运行: https://localhost:5001/ ,其数据库连接到名为 dbweb 的 docker 容器,该容器使用 mssql-server-linux:latest 的映像。 它的 docker 端口是 1433: 并且 (MAC IP:Port) 是 9999。数据库在本地运行,当我通过 Azure 连接到它时,服务器名称是“localhost,9999”。 尽管在网上搜索了许多资源,并查看了有关此主题的类似问题,但我无法找到部署应用程序的明确解决方案。 我想知道是否有必要创建一个 linode linux 服务器或任何远程服务器,通过终端上的 ssh 连接到该服务器,并在该服务器上为我的数据库创建一个新的 docker 容器,以及克隆 web 应用程序源从 github 到该远程服务器的代码仓库。 创建另一个 vm 服务器来托管我的应用程序将连接到的 sqlserver 的 docker 容器会更好,还是有更好的方法? 我计划使用 nginx 在远程虚拟机服务器上托管我的应用程序。 顺便说一句,我在 Mac OS 上。 我正在寻找一种更简单的方法来简化部署过程。 谢谢。

您可以通过多种方式实现您的目标。

选项一:

如果您想完全控制服务器基础结构(CPU、RAM、内存),请使用 Azure 的 IaaS 产品。 1. 使用您想要的操作系统创建 Azure 虚拟机 2. 安装 asp.net 核心 Web 应用托管服务器,打包您的应用,配置托管服务器并部署包 3. 安装 Docker 4. 在 AZ VM 中创建一个映像,就像您在 AZ VM 中所做的一样您的本地 MS sql 服务器并运行容器 5. 创建一个公共 IP 以通过 Internet 连接您的 VM,并使用 FQDN 配置 DNS。

选项b:

a) Azure 的 PaaS - 应用服务来托管您的 asp.net 核心 Web 应用[无需维护操作系统/托管服务器 + 您可以在 linux/Windows 操作系统之间进行选择。 完全由 Azure 管理] 和

b) PaaS - ACI(Azure Container Instances)用于您的数据库/db 服务器 [在 ACI 中,无需维护操作系统或 Docker。 它完全由 Azure 管理]。

此外,ACI 提供标记为 FQDN(完全限定域名)的公共 IP 和 DNS,您可以在 Web 应用程序的连接字符串中将其用作数据库服务器名称。 您可以使用它从本地计算机通过 SSMS 或 Azure 数据工作室连接到您的数据库,以直接检查您的数据。

注意: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

设置初始配置后,您可以通过 Azure DevOps 加快部署 (CI/CD)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM