jenkins+gitee+docker自动化构建springcloud多模块(二)

1、环境说明
接着上一篇的jenkins安装,本篇将采用参数化构建参数和pipline语法完成一个简单的流水线构建的过程。
参数化构建效果如下图
在这里插入图片描述
项目结构大致如下
在这里插入图片描述

2、必须安装插件
Extended Choice Parameter
在这里插入图片描述
安装好重启jenkins,如图所示,这里我已经安装好了插件。
3、新建一个流水线任务
如下图所示
在这里插入图片描述
4、参数化构建配置
如下图,我们首先选择了我们刚刚安装的插件
在这里插入图片描述

其中下面就是我配置
在这里插入图片描述
上图我们配置了选择发布的分支
如有需要,类似我们可以配置需要发布的服务器
然后我们再配置多选项目模块,如下图所示
在这里插入图片描述
其中这里我们参数化构建的配置已经差不多了
5、pipline编写
接下来是用pipline语法来构建流水线任务,
如下代码部分所示
其中有三个参数
branch:构建的分支
ip_host:部署的服务器ip
project_names:需要构建的模块

def project_name =  project_names.replaceAll('"','').split(',')

node{
     
     stage('项目拉取分支'){
         //  拉取分支
         git branch: "${branch}", credentialsId: '2cf967b6-ce92-4cde-976w-ee38830185c1', url: 'https://gitee.com/xxxx/xxx.git'
         sh 'git clean -fdx; sleep 4;'     
     }
     
     stage('项目编译'){
         buildpb_for_loop(project_name)
     }
     
     stage('项目部署'){
         deploypb_for_loop(ip_host,project_name)

     }
    
}

def buildpb_for_loop(project_name){
    def mvnHome = tool 'mvn3.5'
    sh "${mvnHome}/bin/mvn clean"
    sh "${mvnHome}/bin/mvn install"
}


def deploypb_for_loop(host,list){
    // 部署jar路径
    env.deploy_dir = '/app/docker-server'
    for(int i = 0; i < list.size(); i++) {
        if("${list[i]}" == "msg" || "${list[i]}" == "resource"){
            sh "scp  ${WORKSPACE}/common-server/${list[i]}-server/target/${list[i]}-server-0.0.1-SNAPSHOT.jar root@${host}:${env.deploy_dir}/${list[i]}/data"
            sh "ssh root@${host} '${env.deploy_dir}/${list[i]}/start.sh'"  
        }else if("${list[i]}" == "expenses"){
            sh "scp  ${WORKSPACE}/expenses-server/${list[i]}-templet/target/${list[i]}-templet-0.0.1-SNAPSHOT.jar root@${host}:${env.deploy_dir}/${list[i]}/data"
            sh "ssh root@${host} '${env.deploy_dir}/${list[i]}/start.sh'"  
        }else{
            sh "scp ${WORKSPACE}/core-server/${list[i]}-server/target/${list[i]}-server-0.0.1-SNAPSHOT.jar root@${host}:${env.deploy_dir}/${list[i]}/data"
            sh "ssh root@${host} '${env.deploy_dir}/${list[i]}/start.sh' " 
        }
            
        }
           
    }   




如上就可以利用jenkins参数化配置来构建spirngcloud的多模块

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins是一款开源的持续集成工具,它可以帮助开发团队自动化构建、测试和部署软件项目。在Jenkins中配置Docker插件后,我们可以结合Docker技术来进行自动化部署Docker是一种轻量级的容器化技术,它可以将应用程序和其依赖的环境打包成一个可移植的容器,方便在不同的环境中部署和运行。 而Kubernetes(简称K8s)是一个开源的容器编排平台,它可以管理和调度Docker容器集群。通过在K8s中创建Pod、Service等资源对象,我们可以实现Spring Cloud项目的自动化部署。 首先,我们可以使用Jenkins的Pipeline功能来编写自动化部署的流水线脚本。流水线脚本可以定义一系列的步骤,包括构建、测试和部署等。在流水线脚本中,我们可以使用Docker插件来创建Docker镜像,并将其推送到Docker仓库。接着,我们可以使用K8s插件来在Kubernetes集群中创建相关的资源对象,如Deployment和Service等。 在自动化部署过程中,我们可以将Spring Cloud项目的源代码与Dockerfile放在一个Git仓库中,并通过Jenkins的Webhook功能来触发自动化部署流水线。当有新的代码提交时,Jenkins会自动拉取最新的代码,并执行流水线脚本。在流水线脚本中,我们可以使用Maven或Gradle等工具来构建和打包Spring Cloud项目。然后,通过Docker插件创建可运行的Docker镜像,并将其推送到Docker仓库。 最后,使用K8s插件在Kubernetes集群中创建相关的资源对象,如Deployment和Service等。通过创建Deployment对象,我们可以定义应用程序的副本数和容器的镜像。通过创建Service对象,我们可以定义应用程序可以访问的网络端口和负载均衡规则。 通过JenkinsDocker和Kubernetes的自动化部署,我们可以实现Spring Cloud项目的快速、可靠和可重复部署。这种自动化部署的方式可以提高开发效率和部署质量,同时也降低了运维成本和风险。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值