Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器

这篇具有很好参考价值的文章主要介绍了Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果要参考gitlab配置请参考Gitlab+Webhook自动推送并更新Springboot项目 Gitlab的配置部分

环境介绍

  1. Jenkins服务器(Centos7.6):
  • docker安装的jenkins,参考Jenkins(docker安装)部署Springboot项目
  • JDK1.8
  • Maven3.6.3
    注意docker安装的jenkins,而且是较新的版本,所以jenkins容器内的java版本是11的,而我的项目是基于JDK1.8的,所以不能用jenkins容器来的java去打包项目,会出错,得使用服务器上的JDK1.8版本。能这么使用主要得益于使用docker安装jenkins的挂载卷配置,挂在卷映射配置好之后就可以在jenkins的容器内部使用java和mvn命令
  1. 远程应用服务器 - 用来运行springboot项目的

Jenkins配置

安装插件

Manage Jenkins --> Plugins --> Available plugins
搜索Publish Over SSH并安装
Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

工具配置

Manage Jenkins --> Tools

  • 配置本地JDK
    Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

  • Git自动安装即可
    Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

  • 配置Maven
    Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

记得最后要保存

系统配置

Manage Jenkins --> System

  • 全局属性
    因为不能使用jenkins容器内的java11,所以我们要给容器内的JAVA_HOME环境变量设置成挂载jdk1.8的路径
    Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

  • Publish over SSH
    这个工具需要前面安装好Publish Over SSH插件
    Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

同样记得最后要保存

Credentials配置

Manage Jenkins --> Credentials

  • 配置gitee的账号密码
    Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

Pipline任务配置

新建任务 New Item,任务类型为pipline
Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

触发方式

这里使用Generic Webhook Trigger方式
Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

流水线

流水线的任务是通过脚本配置的,就长下面这样
Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

  • 顶层pipeline
pipeline {

}
  • pipeline下面包含agent、stages,stages下面包含多个stage步骤,stage下面又包含多个steps子步骤(也就是具体的执行命令或脚本)
    Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

这里面脚本要实现的步骤就三个:

  1. 拉取代码
  2. maven重新打包
  3. 上传到远程服务器并执行命令重启服务
  • 脚本的编写jenkins提供模板生成Pipeline Syntax(流水线语法)
    比如获取git源码,要生成pipline脚本
    Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

maven打包不需要模板,直接写命令就行,其中sh代表执行命令,然后mvn命令要写文件的全路径

/usr/local/maven/bin/mvn clean install -Dmaven.test.skip=true

还有一个需要使用到Publish over SSH,这个也可以使用模板生成脚本
Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker
注意命令会在上传完成之后执行,如果想要在上传完成之前执行命令,需要配两个Transfer Sets
Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

  • 完整的pipline脚本
pipeline {
    agent any
    stages {
        stage('Get Code') {
            steps {
                // 获取git源码
                git credentialsId: 'd76b95e1-74d3-4ae9-920a-1a8d5027abef', url: 'https://gitee.com/zrzrno/demo.git'
            }
        }
        stage('Maven Build') {
            steps {
                // Maven打包
                sh "/usr/local/maven/bin/mvn clean install -Dmaven.test.skip=true"
            }
        }
        stage('Deploy') {
            steps {
                // 上传jar包到到213试服务器
                sshPublisher(publishers: [sshPublisherDesc(configName: '213', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'cd /usr/local/demo/ && sh demo.sh restart', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/usr/local/demo', remoteDirectorySDF: false, removePrefix: 'target/', sourceFiles: 'target/demo-1.0.0.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
            }
        }
    }
}

这里边还有一个问题,就是通过Publish over SSH执行远程命令,有的远程服务器的环境变量是识别不到的,比如我这里上传完jar包之后需要进入到特定目录并运行另一个脚本文件,那个脚本文件大致就是重启了java服务,问题就在这个java命令居然没有识别到,报错了,所以我把java命令写成了全路径就可以了

nohup /usr/local/jdk1.8.0_271/bin/java -jar ${APP_NAME} >logs.out 2>&1 &

Gitee配置

找到项目–>管理–>webHooks
Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker

配置没问题的话就可以在gitee中看到webhook请求历史
Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker
jenkins中也能看到pipline的执行视图
Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器,gitee,jenkins,docker文章来源地址https://www.toymoban.com/news/detail-639236.html

到了这里,关于Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云服务器使用jenkins+docker自动化部署SpringBoot项目

    docker 安装jenkins,就这一步都恶心死了 //拉取镜像,踩了很多坑,用其它版本的镜像插件一直安装失败,最后用的是lts版本(基础版) 用其它版本要么是连不上插件的下载地址,要么是插件下载不成功  docker pull jenkins/jenkins:lts  部署 docker run --user root -d -p 10240:8080 -p 10241:50

    2024年02月01日
    浏览(55)
  • docker+jenkins+gitee搭建自动部署平台

    linux上没有安装docker的看下面的这篇文章: Linux安装docker-CSDN博客 文章浏览阅读149次。Linux安装docker https://blog.csdn.net/weixin_39075154/article/details/135610942?spm=1001.2014.3001.5501 -d : 启动容器并以“分离”模式运行,即在后台运行。 --name jenkins : 为容器指定一个名称“jenkins”,便于后续

    2024年01月20日
    浏览(49)
  • Jenkins+Docker+Gitee搭建自动化部署平台

    目录 服务器准备 Docker安装 yum 包更新到最新 设置yum源 安装docker 启动和开机启动 验证安装是否成功 Jenkins安装 拉取镜像 创建映射目录 运行镜像 运行出错 修正权限 重新运行镜像 新建安全组,放通8080端口 激活Jenkins Jenkins插件 Jenkins全局工具配置 自动构建Springboot项目 准备好

    2024年02月04日
    浏览(57)
  • Docker+Jenkins+Gitee+Pipeline部署项目

    Hello,各位小伙伴大家好。😄 在上一篇文章【Docker+Jenkins+Gitee自动化部署maven项目】中,咱们详细介绍了如何自动化部署maven项目,如果说你的项目仅仅为maven项目,那么这种部署方式是很契合的,如果我们想要支持更多类型的项目,这种方式就显得有点捉襟见肘了。于是乎,

    2024年02月07日
    浏览(37)
  • Jenkins自动化构建部署前端项目(Linux+gitee)

    本文讲述了Jenkins自动化构建部署前端项目,内容包括Linux系统安装Jenkins、如何配置构建项目并发布到目标服务器。 因公司系统项目众多,前端项目打包麻烦,项目代码管理混乱,因此需要gitee+Jenkins做自动化构建,优化项目打包流程及代码管理。 本次教程可实现最简单的自动

    2024年02月03日
    浏览(57)
  • 前端项目打包和自动化部署(jenkins+gitee+nginx)

    1. 传统的开发模式 在传统的开发模式中,开发的整个过程是按部就班就行: 但是这种模式存在很大的弊端: 工作的不协调:开发人员在开发阶段,测试和运维人员其实是处于等待的状态。等到测试阶段,开发人员等待测试反馈bug,也会处于等待状态。 线上bug的隐患:项目准

    2024年02月01日
    浏览(47)
  • docker启动的jenkins拉取gitee项目构建并部署

    https://hub.docker.com/r可以search不同的jenkins版本 docker pull jenkins/jenkins 创建挂载目录 /home/jenkins_home 加权限 chmod 777 /home/jenkins_home docker run -di --name=jenkins -p 9999:8080 -v /home/jenkins_home:/var/jenkins_home jenkins/jenkins:latest 参数解读 7.打开浏览器访问jenkins localhost:9999 7. 可直接访问宿主机的目

    2024年02月11日
    浏览(53)
  • Jenkins+Gitee+Docker+Ruoyi项目前后端分离部署

    描述:本文主要是用来记录 如何用标题上的技术,部署到云服务器上通过ip正常访问。 一、总览 1.1、Docker做的事 拉取 mysql 镜像 拉取 redis 镜像 拉取 jdk 镜像 拉取 nginx 镜像 解释说明:前端项目的打包文件放在 nginx容器运行。后端的jar包放在jdk容器运行。另外两个是后端项目

    2024年02月07日
    浏览(40)
  • docker+jenkins+gitee+shell 自动化部署微服务(基于若依)【详细完整版】

    提示:需基本熟悉docker命令、shell脚本、微服务部署、git命令、服务器基本命令、node、maven 服务器环境:Linux-EulerOS(华为自主研发服务器系统,与CentOS基本类似) 安装组件:docker20.10.19、openjdk1.8.0_191、maven3.8.6、git2.33.0、node16.17.1、npm9.1.2、jenkinsci/blueocean、docker-compose 远程工

    2023年04月11日
    浏览(45)
  • 五.docker+jenkins自动部署项目

    一.敏捷开发相关概念 1.微服务的痛点 再来看一下我们的微服务架构 , 每个组件都需要服务器去部署,加起来可能需要几十个甚至上百个服务器。 这样的微服务项目在部署上会遇到什么问题? 需要很多很多的服务器,服务器的采购安装,布线都很麻烦 每个服务都需要:编译

    2024年02月03日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包