.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环境-正式环境,以及包含的自动化测试。

相关文章
相关标签/搜索