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

1、簡介node

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

 

2、打包鏡像web

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

咱們須要爲Jenkins安裝一個docker-build-step的插件,系統管理-插件管理,而後Ctrl+F搜索一下:windows

 

咱們須要新建一個空的.net core api項目,而且把它上傳到GitLab,同時還有Dockerfile,新建項目WebTest,Dockerfile以下:api

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:app

而後設置一下保留近七天的10次發佈記錄,你們能夠根據實際狀況設置哈,可選:測試

而後就是流水線的發佈腳本了:ui

 

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

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環境-正式環境,以及包含的自動化測試。

相關文章
相關標籤/搜索