jenkins+gitlab+kubernetes/docker(敏捷开发)

jenkins配置

  1. 更新jenkins以及添加jenkins插件

    GitLab Plugin(gitlab webhook触发构建插件)、Parameterized Trigger(参数化触发)、Maven Integration plugin(maven项目)、 Publish Over SSH(远程推送执行,CD必备)、Docker(基于Docker的master/slave构建任务)、Kubernetes plugin(基于Kubernetes的master/slave构建任务)

  2. gitlab插件添加完后配置gitlab服务器

    Manage Jenkins --> Configure System

    jenkins-gitlab配置

    API token 获取方式见gitlab配置

    gitlab访问凭据

  3. 创建并配置jenkins流水线(pipeline)工程

jenkins-new-pipeline

jenkins-pipeline-config-base

配置gitlab hook钩子

jenkins-pipeline-config-webhook

配置jenkins流水线脚本并保存

jenkins-pipeline-sub

  1. jenkins pipeline脚本

    gitlab自动触发构建脚本

    pipeline {
         
        agent any
        parameters {
         
            //这些参数可以变更
            string defaultValue: 'hosted', description: '选择运行profile', name: 'selectProfile', trim: true
            string defaultValue: 'konka-standard', description: '镜像命名空间', name: 'dockerImagePrefix', trim: true
            string defaultValue: 'http://192.168.1.2225:2370', description: 'docker服务地址', name: 'dockerServerHost', trim: true
            string defaultValue: '192.168.1.222:2375', description: 'docker仓库地址', name: 'dockerProxyImageHost', trim: true
        }
    
        environment {
         
            //要检出的分支
            GIT_CHECK_BRANCH = "feature/dev"
        }
    
        tools {
         
            //配置maven;Manage Jenkins -> global tool configuration中的maven配置名称
            maven 'maven-3.5.3'
        }
    
        stages{
         
    
            stage('Checkout') {
         
                steps {
         
                    echo 'checkout from git'
                    script{
         
                        echo 'admin manual build'
                        //检出代码语句见——》生成git代码检查语句
                        checkout([$class: 'GitSCM', branches: [[name: "*/${env.GIT_CHECK_BRANCH}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ca590b95-256b-4edd-98bb-xxxxxxxxxx', url: 'http://github.com/xxx/yyy.git']]])
                    }
                }
            }
    
            stage('Build Docker Image'){
         
                steps {
         
                    echo 'build docker image step'
                    script{
         
                        echo 'begin build docker image'
                        //无法访问内网环境则将nexus.inner替换成nexus.http
                        sh "imgTag=${env.GIT_CHECK_BRANCH} && mvn clean package -P${params.selectProfile},nexus.inner,!buildprod:linux,!jave2.platform,docker -Dmaven.test.skip=ture -Ddocker.image.prefix=${params.dockerImagePrefix} -Ddocker.image.version=\${imgTag//\\//-}-$BUILD_NUMBER -Ddocker.nexus.hosted.server=${params.dockerProxyImageHost} -Ddocker.server.host=${params.dockerServerHost} "
                        echo 'end build docker image'
                    }
                }
            }
        }
    
    
    }
    
    

    jenkins 手动触发构建,比自动触发多了手动设置的一些参数

    pipeline {
         
        agent any
        parameters {
         
            string defaultValue: 'hosted', description: '选择运行profile', name: 'selectProfile', trim: true
            string defaultValue: 'feature/dev', description: '选择代码分支', name: 'selectBranch', trim: true
            string defaultValue: 'konka-standard', description: '镜像命名空间', name: 'dockerImagePrefix', trim: true
            string defaultValue: 'latest', description: '镜像版本tag', name: 'dockerImageTag', trim: true
            string defaultValue: 'http://192.168.1.2225:2370', description: 'docker服务地址', name: 'dockerServerHost', trim: true
            string defaultValue: '192.168.1.222:2375', description: 'docker仓库地址', name: 'dockerProxyImageHost', trim: true
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值