jenkins同一项目多个服务器,Jenkins流水线--部署多模块maven项目(推荐)

本文介绍了如何使用Jenkinsfile结合Dockerfile和Deploy.sh脚本来实现Jenkins流水线,部署多模块maven项目到多个服务器。详细步骤包括从gitlab拉取代码、maven编译打包、构建并推送Docker镜像以及远程部署到目标服务器。文中还提到了如何配置免密SSH连接目标服务器以及处理jenkinsfile中的各个阶段。
摘要由CSDN通过智能技术生成

600b9601820f

最终Jenkins流水线各步骤分解

Jenkins+Springboot+gitlab+maven+jdk+docker

目录

编写Jenkinsfile,Dockerfile,Deploy.sh

创建jenkins流水线工程

多模块maven项目结构大概如下:

cfw-project #父工程

-canfu-eureka #子工程(1)

-canfu-provider #子工程(2)

-canfu-supplier #子工程(n)

-src

-pom.xml

-pom.xml

-Dockerfile_config #存放各子工程Dockerfile

-Deploy.sh #远程部署脚本

600b9601820f

1、编写Jenkinsfile,Dockerfile,Deploy.sh

编写声明式Jenkinsfile

步骤大概为:(1)打印变量信息;(2)从源码库拉取对应分支代码到"${WORKSPACE}";(3)maven编译、打包;(4)将jar包构建成docker镜像;(5)触发部署脚本(Deploy.sh )实施远程部署/重启/回滚;(6)清理工作目录

pipeline {

agent any

environment {

registryUrl= "192.168.1.110:5000" //搭建docker私有仓库(Harbor)或者 用DockerHub 又或者用云平台的“容器镜像服务”

registry_user= "xxx"

registry_pass= "xxx"

}

options {

timestamps() //设置在项目打印日志时带上对应时间

disableConcurrentBuilds() //不允许同时执行流水线,被用来防止同时访问共享资源等

timeout(time: 5, unit: 'MINUTES') // 设置流水线运行超过n分钟,Jenkins将中止流水线

buildDiscarder(logRotator(numToKeepStr: '20')) // 表示保留n次构建历史

}

//gitlab webhook触发器

//聚合项目,代码发生以下动作后,所有子项目将被触发构建,可选择使用(前提需要gitlab配置 webhook)

//triggers{ //方法一,为All时

// gitlab( triggerOnPush: true, //代码有push动作就会触发job

// triggerOnMergeRequest: true, //代码有merge动作就会触发job

// branchFilterType: "All") //为All时(只有符合条件的分支才会触发构建 “All/NameBasedFilter/RegexBasedFilter”)

//}

//triggers{ //方法二,为branchFilterType时

// gitlab( triggerOnPush: true,

// triggerOnMergeRequest: true,

// branchFilterType: "branchFilterType", //为branchFilterType时

// includeBranchesSpec: "dev") //基于branchFilterType值,输入期望包括的分支的规则

//}

stages{

stage('Print Message') { //打印信息

steps {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值