簡體   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