日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET之Docker部署详细流程

發(fā)布時間:2023/12/4 asp.net 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET之Docker部署详细流程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

開篇語

自己從頭開始走一遍docker部署.net的流程,作為一種學(xué)習(xí)總結(jié),以及后續(xù)會寫一些在該基礎(chǔ)之上的文章。

本次示例環(huán)境:vs2019、net5、docker、postman

創(chuàng)建項(xiàng)目

本次事例代碼是用過vs2019創(chuàng)建的ASP.NET Core Web API項(xiàng)目

image.png

目標(biāo)框架是.Net5,無需身份驗(yàn)證,不配置HTTPS(根據(jù)個人需求勾選),啟動Docker(我習(xí)慣于后期添加),啟用OpenAPI支持(添加swagger文檔)

image.png

默認(rèn)配置

創(chuàng)建完成后,我們查看項(xiàng)目目錄為下

image.png

我們直接F5啟動項(xiàng)目,發(fā)現(xiàn)直接跳轉(zhuǎn)一個API文檔頁面

image.png

Swagger 是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。

修改配置

我基于個人習(xí)慣,我修改launchSettings.json文件,刪除IIS配置,刪除后如下所示:

{"iisSettings":?{"windowsAuthentication":?false,"anonymousAuthentication":?true,"iisExpress":?{"applicationUrl":?"http://localhost:51539","sslPort":?0}},"$schema":?"http://json.schemastore.org/launchsettings.json","profiles":?{"Net5ByDocker":?{"commandName":?"Project","launchBrowser":?true,"launchUrl":?"swagger","environmentVariables":?{"ASPNETCORE_ENVIRONMENT":?"Development"},"dotnetRunMessages":?"true","applicationUrl":?"http://localhost:5000"}} }

刪除默認(rèn)控制器,添加新的控制器UserController,在里面添加默認(rèn)一些方法操作,如下

基于個人習(xí)慣的操作,也可以不刪除默認(rèn)控制器

????[Route("api/[controller]/[action]")][ApiController]public?class?UserController?:?ControllerBase{public?static?List<string>?userInfo?=?new();[HttpGet]public?IEnumerable<string>?Get(){return?userInfo;}[HttpPost]public?List<string>?Post([FromBody]?string?value){if?(!string.IsNullOrWhiteSpace(value))userInfo.Add(value);return?userInfo.ToList();}[HttpDelete("{id}")]public?List<string>?Delete(string?id){if?(!string.IsNullOrWhiteSpace(id))userInfo.Remove(id);return?userInfo.ToList();}}

其他配置保持默認(rèn),啟動項(xiàng)目

image.png

生成鏡像

添加dockerfile

選中項(xiàng)目右鍵添加docker支持,本次部署在windows平臺

image.png

拉取基礎(chǔ)鏡像和sdk,還原nuget包,重新生成,發(fā)布

此時項(xiàng)目的目錄結(jié)構(gòu)為

image.png

運(yùn)行命令

在文件資源管理器打開文件

image.png

在上層目錄下運(yùn)行cmd輸入命令

docker?build?-f?.\Net5ByDocker\Dockerfile?-t?net5sample?.

在不同的目錄下命令有些許差異,這點(diǎn)非常感謝我的朋友王老師

image.png

注意:可能部分朋友在這一步會拉取官方鏡像比較慢,可以配置docker加速器使用

通過docker客戶端查看我們已經(jīng)生成的鏡像

image.png

生成容器

本文通過Terminal軟件執(zhí)行命令

docker?run?--name?net5sampleone?-d?-p?8060:80?net5sample

命令簡述:

-d 后臺運(yùn)行

--name ?容器名稱

-p 端口映射

截至到這,我們已經(jīng)把剛才的項(xiàng)目生成了容器,下面我們可以直接通過容器方法上面的項(xiàng)目

驗(yàn)證項(xiàng)目

通過瀏覽器訪問地址:localhost:8060/swagger

image.png

懵逼!!!這個時候不是應(yīng)該出來swagger文檔的界面嗎?難道我們部署的方式有問題?

讓我們訪問下項(xiàng)目的接口

image.png

說明我們的項(xiàng)目運(yùn)行是正常的,仔細(xì)查看swagger配置后發(fā)現(xiàn),因?yàn)闉榱税踩J(rèn)不允許發(fā)布后出來swagger文檔

image.png

如果是測試環(huán)境或者特殊情況可以通過調(diào)整swagger配置位置來顯示文檔

通過Postman訪問

添加用戶

image.png

查詢用戶

image.png

刪除用戶

image.png

再次運(yùn)行查詢接口數(shù)據(jù)已經(jīng)為空了。

總結(jié)

以上是生活随笔為你收集整理的.NET之Docker部署详细流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。