❤系列①②已經完成了這個項目的頁面和項目的全部編碼,前後端分離,這個文章將向你展示運維小夥伴如何部署到windows服務器,linux服務器,docker部署,一學就會,快來看看吧!
❤說明:這個系列準備用Simple快速框架搞個自己能用的網盤,來個實戰,教大家如何搞一個項目,其中你能學到如何進行項目級對接,如何快速進行項目編碼,如何完善你的項目,以及如何部署它。
💥我的快速開發框架項目
先介紹下我的基於.NET 8的快速開發框架Simple Framework,旨在簡化開發流程,減少學習成本。框架特點包括基於.NET 8、少用第三方庫、基本授權鑑權、CRUD實現和後臺管理前端。規劃使用了NLog、Redis、Json庫等,並支持多數據庫結構。框架包含基礎庫、Web項目擴展庫、EFCore擴展庫、代碼生成器和定時任務模塊,並提供了一套基於vue2 elementui前端頁面框架,以提高開發效率和靈活性,發佈以來收到了很多朋友的喜歡,本文的封裝工具也是朋友的建議下擼出來的,快去看看吧。點我✨Star
整個項目已經完成了,整體代碼圖如下:
項目代碼行數分析圖 692行:
下面開始準備編譯部署
💫先說最簡單的windows服務器部署運行
webHost項目右鍵發佈,選擇win64(不考慮x86了),我們按照框架依賴發佈
發佈好後,在服務器上安裝.NET8的運行環境 安裝 Windows Hosting Bundle ,輸入dotnet --info 查看是否安裝正常
將publish包拷貝到服務器的軟件目錄,下面幾種運行方式:
1.簡單運行直接雙擊啓動webhost.exe
2.cmd命令啓動 dotnet webhost.dll
3.IIS 運行,IIS添加網站,選擇我們的目錄,和常規iis站點一樣直接啓動
4.服務運行,將應用註冊爲服務運行。
應用正常啓動後,瀏覽器輸入http://localhost:5000即可進入網盤頁面。
💫接下來說Linux服務器部署運行
此處假設你已經有一定的linux使用基礎,確保開啓了適當的防火牆端口,以便外界可以訪問你的應用程序
本地根據你的linux服務器版本 配置發佈文件,我此處使用Linux-64發佈,發佈好後複製到服務器上
我們使用WindTerm 連接我們的Linux服務器,首先不管什麼版本的linux 服務器,先按照腳本安裝.NET 8 Linux發行版,以Ubuntu爲例,你可能需要執行如下命令來安裝.NET 8:
# 添加Microsoft的包倉庫
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
# 安裝.NET SDK
sudo yum install dotnet-sdk-8.0
# 安裝.NET 運行時
sudo yum install aspnetcore-runtime-8.0
# 安裝.NET 運行時環境
sudo yum install dotnet-runtime-8.0
如果是Centos(高版本)
# 添加Microsoft的包倉庫
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
# 安裝.NET SDK
sudo yum install dotnet-sdk-8.0
# 安裝.NET 運行時
sudo yum install aspnetcore-runtime-8.0
# 安裝.NET 運行時環境
sudo yum install dotnet-runtime-8.0
安裝完成後,使用dotnet --info測試你的安裝是否正常
在應用目錄 執行 dotnet WebHost.dll 即可運行你的網盤站點,注意,按照此方式運行的站點,ssh連接斷開後應用就關閉了,和我們關閉了控制檯一樣,你要保持常駐運行,一般我們使用服務運行。
💫接下來說Linux服務器服務部署運行
上述過程不變需要來一遍,使用systemd創建一個服務。創建一個服務文件,例如/etc/systemd/system/WebHost.service,然後添加以下內容:
[Unit]
Description=WebHost
[Service]
WorkingDirectory=/path/to/app
ExecStart=/usr/bin/dotnet /path/to/app/WebHost.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
然後啓用並啓動服務:
sudo systemctl enable your-application.service
sudo systemctl start your-application.service
好了,就這麼簡單,Linux服務器上的發佈部署也就完了,當然還有一些更細節的配置,比如配置使用啥端口啊,配置使用啥賬戶運行啊,那都是需要更深入後會遇到的問題,此處就不深入解說了
💫接下來說服務器Docker部署運行,此處假設你已經知道一些docker的基礎知識
首先你要製作docker鏡像,需要配置dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER root
WORKDIR /app
EXPOSE 8080
# 將發佈的應用文件複製到容器中 . . 需要dockerfile文件和發佈後的文件在一個目錄
COPY . .
ENTRYPOINT ["dotnet", "WebHost.dll"]
上傳你發佈好的文件,連同dofkerfile文件一起,在此目錄構建docker 鏡像
docker build -t simplecloudimage:tag .
執行 docker images 查看是否構建成功
構建成功之後,就可以使用docker命令運行容器
docker run -d \
-v simplecloud-keys:/root/.aspnet/DataProtection-Keys \
-v /mystorage/SimpleCloud:/app/simplecloud \
-p 8080:8080 \
--name simplecloud simplecloudimage
上面的命令我把存儲盤給映射了出來,保證我們的文件即使容器不在了,也能存在,端口正常的情況下,你訪問服務器8080端口即可進入網盤
❣擴展
你的鏡像構建好了,你可以把他發佈到鏡像倉庫,這樣其它人就可以直接使用你構建好的鏡像來創建應用,那個屬於docker的使用就不細說了,快給我點贊給我動力發佈其他更多精彩內容吧!
💚源碼地址
快給我點贊給我動力發佈其他更多精彩內容吧!