1. 程式人生 > >.Net Core自動化部署系列(二):使用Jenkins打造鏡像發布流水線

.Net Core自動化部署系列(二):使用Jenkins打造鏡像發布流水線

lsi 自動化測試 web spn otn exp int 通過 實現

一、簡介

之前寫過一篇關於Jenkins搭配GitLab實現.net core項目自動發布到IIS的博文,比較簡單哈,只是個Demo。本篇我們將會使用Jenkins搭配GitLab實現鏡像的自動打包和上傳,這篇其實是一個鋪墊篇,因為後面我們需要使用Jenkins實現kubernetes的發布流水線,即實現鏡像的自動化打包和部署。

二、打包鏡像

Jenkin的安裝和使用在.Net Core自動化部署系列(一)中已經介紹過了哈,如果沒有安裝過的同學可以去看下,這裏我使用windows版本的Jenkins。

我們需要為Jenkins安裝一個docker-build-step的插件,系統管理-插件管理,然後Ctrl+F搜索一下:

技術分享圖片

技術分享圖片

我們需要新建一個空的.net core api項目,並且把它上傳到GitLab,同時還有Dockerfile,新建項目WebTest,Dockerfile如下:

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

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
Copy . .

RUN dotnet restore
RUN dotnet build -c Release -o /app

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

好了 上傳完成後我們就不需要管了,然後再Jenkins新建一個流水線項目Pipline_Test:

技術分享圖片

然後設置一下保留近七天的10次發布記錄,大家可以根據實際情況設置哈,可選:

技術分享圖片

然後就是流水線的發布腳本了:

技術分享圖片

我先粘貼一下流水線腳本,然後再詳細介紹下,其實也蠻簡單的:

node{
    stage(
git下載){ git credentialsId: f2d1ca50-1916-46b6-af06-6ee817f31294, url: https://git.lug.ustc.edu.cn/DeepmountainMoose/apitest.git } stage(構建){ bat ‘‘‘ cd "%WORKSPACE%/WebTest" docker build -t xxx/webtest . ‘‘‘ } stage(上傳到倉庫){ bat ‘‘‘ docker login -u xxx -p xxx docker push xxx/webtest docker rmi xxx/webtest ‘‘‘ } }

首先是git的項目下載,這裏的語句是通過截圖的語法介紹自動生成的,點擊Pipeline Syntax 如下:

技術分享圖片

然後是第二步“構建”,因為我這裏是windows,所以批處理命令需要用bat,如果是Linux請使用sh,構建的腳本比較簡單,就是cd到項目目錄下,打包鏡像哈。

打包完成後就是上傳到鏡像倉庫,我這裏上傳的是Docker Hub,如果是個人的私有鏡像倉庫,酌情修改。

然後我們點擊OK,退回到項目主頁,就可以點擊立即構建了,以下是構建日誌:

技術分享圖片

技術分享圖片

鏡像構建成功,並且上傳到了DockerHub,其實到這裏如果我們就可以編寫鏡像部署的命令來直接發布鏡像的。

當然,鏡像的發布流水線肯定不是編譯-打包-發布這麽簡單的,還需要測試環境-UT環境-正式環境,以及包含的自動化測試。

.Net Core自動化部署系列(二):使用Jenkins打造鏡像發布流水線