.net core專案linux伺服器部署、docker部署、jenkins自動化部署
阿新 • • 發佈:2019-02-17
當你想要使用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