DotNET 之 Docker 部署詳細流程
開篇語
自己從頭開始走一遍 docker 部署. net 的流程,作爲一種學習總結,以及後續會寫一些在該基礎之上的文章。
本次示例環境:vs2019、net5、docker、postman
創建項目
本次事例代碼是用過 vs2019 創建的 ASP.NET Core Web API 項目
目標框架是. NET 5,無需身份驗證,不配置 HTTPS(根據個人需求勾選),啓動 Docker(我習慣於後期添加),啓用 OpenAPI 支持 (添加 swagger 文檔)
默認配置
創建完成後,我們查看項目目錄爲下
我們直接 F5 啓動項目,發現直接跳轉一個 API 文檔頁面
Swagger 是一個規範和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。
修改配置
我基於個人習慣,我修改 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"
}
}
}
刪除默認控制器,添加新的控制器 UserController,在裏面添加默認一些方法操作,如下
基於個人習慣的操作,也可以不刪除默認控制器
[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();
}
}
其他配置保持默認,啓動項目
生成鏡像
添加 dockerfile
選中項目右鍵添加 docker 支持,本次部署在 windows 平臺
拉取基礎鏡像和 sdk,還原 nuget 包,重新生成,發佈
此時項目的目錄結構爲
運行命令
在文件資源管理器打開文件
在上層目錄下運行 cmd 輸入命令
docker build -f .\Net5ByDocker\Dockerfile -t net5sample .
在不同的目錄下命令有些許差異,這點非常感謝我的朋友王老師
注意:可能部分朋友在這一步會拉取官方鏡像比較慢,可以配置 docker 加速器使用
通過 docker 客戶端查看我們已經生成的鏡像
生成容器
本文通過 Terminal 軟件執行命令
docker run --name net5sampleone -d -p 8060:80 net5sample
命令簡述:
-d 後臺運行
--name 容器名稱
-p 端口映射
截至到這,我們已經把剛纔的項目生成了容器,下面我們可以直接通過容器方法上面的項目
驗證項目
通過瀏覽器訪問地址:localhost:8060/swagger
懵逼!!!這個時候不是應該出來 swagger 文檔的界面嗎?難道我們部署的方式有問題?
讓我們訪問下項目的接口
說明我們的項目運行是正常的,仔細查看 swagger 配置後發現,因爲爲了安全默認不允許發佈後出來 swagger 文檔
如果是測試環境或者特殊情況可以通過調整 swagger 配置位置來顯示文檔
通過 Postman 訪問
添加用戶
查詢用戶
刪除用戶
再次運行查詢接口數據已經爲空了。
轉自:Azing
鏈接:cnblogs.com/azrng/p/14730149.html
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/eOYv3w9SALVGFL5iL8PEJg