Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)相关的知识,希望对你有一定的参考价值。

       Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins。Pipeline提供了一组可扩展的工具,用于通过PipelineDSL为代码创建简单到复杂的传送Pipeline。
         对于单个项目来说,使用这样的Pipeline来构建能够满足绝大部分需求,但是这样做也有很多缺陷,包括: 

多个项目的Pipeline打包脚本不能公用,导致一个项目写一份脚本,维护比较麻烦。
Jenkins提供了一个更优雅的管理Pipeline脚本的方式,在配置项目Pipeline的时候,选择Pipeline script from SCM。
这样,Jenkins在启动job的时候,首先会去仓库里面拉取脚本,然后再运行这个脚本。在脚本里面,我们规定的构建方式和流程,就会按部就班地执行。
接下来我们来实践下。

        环境:Docker
        容器管理平台:Rancher
        语言:Java

**  Jenkins安装**
                略

**Pipeline插件安装**
            流水线插件
            系统管理--->管理插件--->可选插件--->搜索pipeline--->点击直接安装

技术分享图片

  **extended choice parameter插件安装**:
    参数化构建过程,构建的时候可以多选框来选择要构建的项目模块
    系统管理--->管理插件--->可选插件--->搜索extended choice parameter---->点击直接安装

技术分享图片

    新建一个pipeline的job
    点击参数构建化

技术分享图片

    新建分支版本参数

技术分享图片

    新建项目名称参数

技术分享图片

    新建rancher id环境变量

技术分享图片

  新建rancher应用分类

技术分享图片

流水线配置   

技术分享图片
Repositories Jenkinsfile脚本所在分支
Branches to build是Jenkinsfile所在分支

脚本
技术分享图片

技术分享图片
技术分享图片
技术分享图片
这边只要修改每个job的参数上面的某些变量即可,无需更改构建脚本,不管几个Job,都可共同一个脚本。
我这边只是举一个简单的例子,大家实际应用中,需要转变思路。


企业级Docker+Jenkins+Gitlab自动化构建实践

http://edu.51cto.com/course/14600.html
技术分享图片

以上是关于Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab+Harbor+Jenkins pipeline实现利用tag部署docker容器

Jenkins-05-Pipeline使用 Docker构建项目并构建进行推送到私有仓库 harbor

Jenkins 配合Pipeline使用Docker

在容器中运行 Jenkins pipeline 任务

Jenkins-pipeline的实现步骤

gitlab+jenkins+maven+docker持续集成——.Jenkins Pipeline持续集成