如何使用ASP.NET技術構建一個容器并發(fā)布成ModelArts在線服務

      網友投稿 721 2022-05-29

      目標

      將ASP.NET Core Web API應用程序進行容器化并部署在華為的ModelArts平臺

      準備工作

      ? 安裝 .NET Core SDK 2.0

      ? 安裝一個喜歡的代碼編輯器,例如 Visual Studio(Code)。

      ? 安裝 Docker CE for Windows

      Visual Studio Docker 工具集

      為應用程序添加 Docker 支持

      要使 ASP.NET 與 Docker 集成,該項目必須是 .NET Core 項目,Linux 和 Windows 兩種類別的容器都支持。ASP.NET Core 項目的 Container 類型必須與本機 Docker 引擎運行的 Container 類型相同??赏ㄟ^在任務欄圖標上右鍵單擊 Docker 圖標 -> Switch to Windows containers 或 Switch to Linux containers 功能來進行切換。

      創(chuàng)建新的應用程序

      對于新創(chuàng)建的 ASP.NET Core 項目,勾選 Enable Docker Support,并選擇一個 Docker Container 類型。

      為現有項目添加 Docker 支持

      Visual Studio 僅支持為 .NET Core 項目添加 Docker 支持,有兩種方式,首先打開一個項目

      選擇 Project 菜單 -> Docker Support

      右鍵單擊項目 -> 添加 -> Docker Support

      Visual Studio Docker 概覽

      當對一個項目添加 Docker 支持后,VisualStudio 將項解決方案目錄添加一個 docker-compose.dcproj 項目,其中包含:

      .dockerignore: 生成 build 時需要忽略的文件和目錄匹配字段

      如何使用ASP.NET技術構建一個容器并發(fā)布成ModelArts在線服務

      docker-compose.yml: Docker Compose 的定義文件,定義了一系列 Image 的集合用于 docker-compose build 和 docker-compose run。

      docker-compose.override.yml: 一個可選文件,也會被 Docker Compose 讀取,包含需要對服務進行重寫的配置信息。Visual Studio 執(zhí)行docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" 來合并這些文件

      同時,ASP.NET Core 項目文件夾下自動生成了一個名為 Dockerfile 的文件(注意這里是自動生成的),該文件起始包含 4 個單獨的生成環(huán)節(jié),其根據 Docker multi-stage build 定義,內容如下:

      此處需要按照華為給定的示例文檔將監(jiān)聽ip設置為 "0.0.0.0", 對外監(jiān)聽的端口設置為 8080,故需要對dockerfile文檔進行修改:

      調試

      在 Debug 模式下按下 F5,同時查看 Visual Studio 的輸出窗口,其步驟如下:

      microsoft/aspnetcore: 獲取 aspnet core runtime Image。

      microsoft/aspnetcore-build: 獲取編譯/發(fā)布 Image。

      ASPNETCORE_ENVIRONMENT: Container 內環(huán)境變量設置為 Development。

      Container 暴露 8080 端口了并映射到了主機的動態(tài)端口,該動態(tài)端口由 Docker 主機決定,可通過 docker ps 來查詢。

      應用程序被復制到了 Container 中

      默認瀏覽器被打開,并通過動態(tài)端口將調試器附加到了 Container 中。

      完成后執(zhí)行docker images可以看到生成好的Image。

      執(zhí)行docker ps可以看到正在運行的 container。

      編輯并繼續(xù)

      與傳統(tǒng) .NET 程序的調試一樣,針對靜態(tài)文件和 Razor 視圖的更改都將實時更新,而無需重新編譯,但針對源代碼的修改,則需要重新編譯并重啟 Kestrel 服務器,這都在 Container 中完成。

      發(fā)布 Docker Image

      一旦開發(fā)和調試完成,需要首先將配置切換至 Release,然后生成應用程序,Docker 工具集會生成一個新的打上 latest 標簽的 Image,最后可將該 Image 上傳至私有倉庫或 Docker Hub。

      在本地驗證

      從dockerhub上拉取并驗證鏡像

      這里在windows下是使用postman進行的測試(測試過程略),測試接口功能正常之后,按照說明文檔將鏡像上傳部署即可。

      部署成功后在頁面點擊預測對接口進行測試:

      在“預測”界面能正常調用,說明服務部署成功。

      至此,模型容器化改造及部署工作結束,用戶可以用API開心的調用我們的模型了。

      參考教程

      使用自定義鏡像創(chuàng)建AI應用:?https://support.huaweicloud.com/bestpractice-modelarts/modelarts_10_0072.html

      為NET Core 應用程序添加 Docker 支持:https://blog.frosthe.net/aspnetcore-host-in-docker-containers/

      ASP.NET應用程序容器化:https://sunnycoding.cn/2018/10/07/dockerize-aspnetcore-cicd-with-azure-devops-and-kubernetes-part1/

      為防止參考鏈接失效,打印版放在了附件欄。

      附件: ASP.NET Core應用程序容器化.pdf 1.40MB 下載次數:0次

      附件: 為ASP.NET Core應用程序添加Docker支持 .pdf 0B 下載次數:0次

      ASP.NET 容器

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Unity 接入友盟統(tǒng)計過程詳解(IOS)
      下一篇:VirtualBox Network設置的NAT和Bridged Adapter模式區(qū)別
      相關文章
      午夜亚洲国产理论秋霞| 2048亚洲精品国产| 亚洲电影一区二区| 久久久久亚洲AV成人网人人软件 | 亚洲国产精品一区二区久| 久久综合日韩亚洲精品色| 亚洲色婷婷一区二区三区| 久久亚洲中文字幕精品一区四| 国产亚洲精品91| 亚洲AV香蕉一区区二区三区| 亚洲一卡2卡3卡4卡国产网站| 亚洲嫩草影院在线观看| 亚洲欧洲日韩在线电影| 亚洲精品日韩中文字幕久久久| 亚洲小视频在线观看| 久久亚洲春色中文字幕久久久| 亚洲一二成人精品区| 亚洲精品成人久久| 亚洲激情视频网站| 亚洲av永久综合在线观看尤物| 亚洲av永久综合在线观看尤物| 亚洲欧洲日韩国产一区二区三区| 国产99在线|亚洲| 一本色道久久88—综合亚洲精品 | 亚洲乱码中文字幕小综合| 亚洲国产成人久久| 亚洲不卡影院午夜在线观看| 日本亚洲免费无线码| 亚洲av永久无码精品秋霞电影秋| 亚洲aⅴ天堂av天堂无码麻豆| 综合一区自拍亚洲综合图区| 婷婷亚洲天堂影院| 国产亚洲精品无码专区| 国产亚洲av片在线观看播放 | 国产亚洲玖玖玖在线观看| 亚洲第一综合天堂另类专| 亚洲av无码国产精品色在线看不卡 | 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 亚洲国产精品自在自线观看| 国产精品亚洲专区无码牛牛| 亚洲免费视频一区二区三区|