上一節演示如何安裝Docker,鏈接:Docker學習筆記之-在CentOS中安裝Docker
本節演示 將.net core 3.1 部署到docker容器當中,并使用 Nginx反向代理,部署平臺 CentOS 7.8
在演示之前先打地基:
1,需要安裝 Nginx 支持 (centos7.8 默認不帶Nginx)
2,需要安裝 .NET Core Runtimes 運行時支持
額外補充:如果要在CentOS上開發 .NET應用,要安裝 SDK(SDK中包括運行時), 如果只需運行應用程式,只需要安裝運行時,
如果要安裝該運行時,建議安裝 ASP.NET Core 運行時,因為它同時包括 .NET Core 和 ASP.NET Core 運行時,
詳情參考官網檔案:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos
第一步:安裝 Nginx
centos系統不像 ubuntu系統,可以直接install安裝,需要先添加源:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

上圖表示添加成功,接下來執行安裝命令
sudo yum install -y nginx

安裝完畢:

啟動 Nginx 服務
sudo systemctl start nginx.service
啟動后通過下邊腳本驗證是否安裝成功,這里的IP地址就是你centos系統的ip地址,怎么查看ip地址可以查看前邊章節
curl http://172.18.237.116/
出現以下內容說明安裝成功,

附上一個參考檔案:https://www.cnblogs.com/tenghao510/p/11990353.html
第二步: 安裝 .NET Core Runtimes 運行時
#安裝 .NET 之前,請運行以下命令,注冊 Microsoft 密鑰,安裝必需的依賴項, 打開終端并運行以下命令:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

#安裝 .NET Core 運行時
sudo yum install aspnetcore-runtime-3.1

到此,地基打完了!
接下來開始正文,編譯你.net專案,并添加docker支持,專案右鍵,選擇添加docker 支持(這一部分操作必須)

然后選擇 linux,主要是為了發布到 centos 上

確定后,專案中會多了一個 Dockerfile 檔案

默認里面內容是:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR /app EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build WORKDIR /src COPY ["myAPI/myAPI.csproj", "myAPI/"] RUN dotnet restore "myAPI/myAPI.csproj" COPY . . WORKDIR "/src/myAPI" RUN dotnet build "myAPI.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "myAPI.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "myAPI.dll"]
實際上,生產環境只需要以下內容就可以了,
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR /app COPY . /app EXPOSE 80 ENTRYPOINT ["dotnet", "myAPI.dll"]
解釋:
EXPOSE 80 是指這個容器對外暴露的埠;
WORKDIR /app 是容器的作業目錄;
COPY . /app 是指復制當前目錄(其中.即代表當前目錄)到容器中的/app目錄下;
ENTRYPOINT 指定容器的運行物件
右鍵專案-->發布-->配置發布內容

配置內容:部署模式選擇 “依賴框架”,運行時選擇 linux-x64,點擊,保存--發布

發布成功之后,通過軟體Xftp 將專案上傳到服務器上
在centOS服務根目錄創建一個專案檔案夾,存放要上傳的專案,
通過Xftp很方便的就可以完成,右鍵--新建檔案夾:netcoredemo,將左邊檔案上傳即可

發布后的專案不包含 Dockerfile,需要單獨上傳,將Dockerfile也上傳到專案netcoredemo檔案夾中

通過命令 ls 驗證是否上傳成功,如下圖所示,專案已經上傳成功

現在專案上傳到服務器了,接下來就是部署到Docker中!
感覺篇幅有點兒長了,所以打算放到下一節中演示!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/187004.html
標籤:.NET技术
