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


一、簡介

之前寫過一篇關於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環境-正式環境,以及包含的自動化測試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM