1. 程式人生 > >.net core專案linux伺服器部署、docker部署、jenkins自動化部署

.net core專案linux伺服器部署、docker部署、jenkins自動化部署

當你想要使用docker部署.net core專案時候,你應該考慮這些問題
1.docker怎麼部署
2.怎麼快速部署
3.怎麼自動化部署
4.怎麼檢查日誌
5.如果程式碼使用git或者svn怎麼更新程式碼就可以完成部署
6.定時執行控制檯程式專案

一.docker怎麼部署

1.將專案拷貝到伺服器中 類似地址是:/var/www/spiderweb/CSHouseWeb

2.docker下載dotnet環境映象:

docker pull microsoft/dotnet:2.1-aspnetcore-runtime
docker pull microsoft/dotnet:2.1-sdk

本人使用的是net core 2.1

然後在專案目錄建立Dockerfile(自行百度是什麼,其實就是快捷構建的配置檔案),這個自己寫,或者在建立web專案的時候勾選docker支援。

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY /CSHouseWeb.csproj /
RUN dotnet restore /CSHouseWeb.csproj
COPY . .
WORKDIR /src/
RUN dotnet build CSHouseWeb.csproj -c Release -o /app

FROM
build AS publish RUN dotnet publish CSHouseWeb.csproj -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "CSHouseWeb.dll"]

這裡寫圖片描述

3.docker構建專案

docker build  /var/www/spiderweb/CSHouseWeb -t csweb_net

這裡寫圖片描述
4、啟動專案,對映埠

docker run --name csweb  -d -p 2100:5000  csweb_net

二.怎麼快速部署

上面是編譯後在釋出,一般情況我們只是釋出html,css,js,或者是直接把程式碼拷貝到專案中,就不考慮編譯了
我們就可以使用下面Dockerfile
怎麼釋出呢?
1.右擊發布 2.iis.ftp 3.檔案系統 4.建立下面的Dockerfile 5.把目錄拷貝到伺服器上

FROM microsoft/dotnet
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "CSHouseWeb.dll"]

6.執行

docker build  /var/www/spiderweb/CSHouseWeb -t csweb_net
docker run --name csweb_net  -d -p 2102:80  csweb_net

三.自動化部署、定時啟動、svn、git程式碼提交部署都可以使用jenkins了
具體方法之後參考使用jenkins自動化部署docke映象node專案
寫下指令碼

 docker kill csweb_net
 docker rm csweb_net
 docker image rm csweb_net
docker build  /var/www/spiderweb/CSHouseWeb -t csweb_net
docker run --name csweb_net  -d -p 2102:80  csweb_net