jenkins 流水线打包/发布spring boot项目传到其他服务器

位置:首页>文章>详情   分类: 教程分享 > Linux和Shell教程   阅读(1254)   2024-03-14 17:29:34

继前面讲解了jenkin的安装Jenkins 2.319.1 LTS WAR文件安装方式 这里讲解下jenkin的基础部署流程。

以开发环境为例,通过jenkins流水线的方式 git拉取代码、maven编译spring boot项目、scp将项目传到其他服务器进行docker环境的发布。

Jenkins git认证凭据添加

首先配置git的访问认证。可以配置用户名+密码方式也可以配置用户名+公钥方式,jenkins的git插件提供了多种认证模式

添加全局凭据 

添加全局凭据
添加git认证的全局凭据

jenkins 创建流水线任务

 

创建流水线任务
创建流水线任务

通过Hello Word demo流水线构建基础的流水线脚本结构
流水线脚本结构

Jenkins 流水线脚本基础讲解

顶层pipeline

pipeline {


}

pipeline下面包含一个stages,stages下面包含多个stage也就是步骤,stage下面又包含多个steps子步骤(也就是具体的执行命令或脚本),如下:

pipeline {
    stages {
        stage('获取代码') {
            steps {
                echo 'Get Code'
            }
        }
        stage('编译代码') {
            steps {
                echo 'mvn package'
            }
        }
        stage('发布程序') {
            steps {
                echo '复制项目到指定服务器或位置'
                echo '执行项目启动命令'
            }
        }
    }
}

Jenkins git流水线脚


流水线的脚本语法可以通过语法的生产界面生成,点击流水线下面的流水线语法

流水线语法生成
流水线语法生成

跳转到流水线的生产界面:

流水线生成节目
流水线生成界面


git语法生成

git语法生成
git语法生成

1.仓库地址这里是随便找的一个项目;
2.凭据是之前创建的git认证凭据
3.生成脚本后复制脚本到前面的steps里面


现在的流水线脚本如下:

pipeline {
    agent any

    stages {
        stage('Get Code') {
            steps {
                git credentialsId: 'e509e172-56ef-4fcf-af87-2cc883671c56', url: 'https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter.git'
            }
        }
    }
}


jenkins 编译spring boot 项目

项目的编译与平时执行maven编译命令一样,

sh "mvn clean && mvn package -Dmaven.test.skip=true "

将编译命令带入到流水线脚本得到如下:

pipeline {
    agent any

    stages {
        stage('Get Code') {
            steps {
                git credentialsId: 'e509e172-56ef-4fcf-af87-2cc883671c56', url: 'https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter.git'
            }
        }
        stage('Maven Build') {
            steps {
                sh "mvn clean && mvn package -Dmaven.test.skip=true "
            }
        }
    }
}

jenkins 发布项目

1.发布项目到本机

pipeline {
    agent any

    stages {
        stage('Get Code') {
            steps {
                git credentialsId: 'e509e172-56ef-4fcf-af87-2cc883671c56', url: 'https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter.git'
            }
        }
        stage('Maven Build') {
            steps {
                sh "mvn clean && mvn package -Dmaven.test.skip=true "
            }
        }
        stage('Deploy') {
            steps {
                sh "cp -f target/app-name.jar /docker/app-name/app-name.jar"
                sh "cp -f target/docker-compose.yml /docker/app-name/docker-compose.yml"
                sh "docker-compose build;docker-compose down;docker-compose up -d"
            }
        }
    }
}

2.发布到其他服务器

pipeline {
    agent any

    stages {
        stage('Get Code') {
            steps {
                git credentialsId: 'e509e172-56ef-4fcf-af87-2cc883671c56', url: 'https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter.git'
            }
        }
        stage('Maven Build') {
            steps {
                sh "mvn clean && mvn package -Dmaven.test.skip=true "
            }
        }
        stage('Deploy') {
            steps {
                sh "scp -r target/app-name.jar root@dev-server-1:/docker/app-name/app-name.jar"
                sh "scp -r target/docker-compose.yml root@dev-server-1:/docker/app-name/docker-compose.yml"
                sh "ssh root@dev-server-1 docker-compose build;docker-compose down;docker-compose up -d"
            }
        }
    }
}

注意:开发服务器 dev-server-1已提前配置免密登录。
免密登录配置参考:


其他相关参考文章:


 

地址:https://www.leftso.com/article/966.html

相关阅读

继前面讲解了jenkin的安装Jenkins 2.319.1 LTS WAR文件安装方式 这里讲解下jenkin的基础部署流程
漏洞概况Jenkins有一个内置的命令行界面(CLI),可从脚本或shell环境访问Jenkins。Jenkins漏洞修复方案讲解
Publish over SSH 组件是远程部署用的比较多的一个组件,这里说下它的目录相关一、相对于用户目录 如果在Jenkins的 【系统管理-&gtl;系统配置】中,Remote Direc...
查看jenkin的进程idps -ef|grep jenkins.war|grep -v "grep"|awk '{print $2}'执行结果参考:[root@test-server-2 bi...
环境准备minikube 安装,参考minikube k8s 安装详细教程spring boot demo项目一个spring boot项目 maven 主要依赖 <depe...
接上篇文章minikube(k8s)部署spring boot项目(一)上篇文章讲解了k8s部署spring boot demo项目的一部分,本文主要讲解如何将服务暴露指定的端口给外部调用
Docker stack 使用演示案例一环境准备安装好docker swarm(本文以1manager+3worker为例)spring boot demo演示项目通过NFS实现共享目录访问资源...
skywalking 是一款不错的java apm监控服务,比zipkin功能更强大,需要的服务器配置也更多一些
poxm.xml文件添加maven依赖 <dependency&gtl; <groupId&gtl;org.apache.skywalking&...
Linux查看BIOS版本/信息详情命令如下:#dmidecode -t 0例子:root@DS:~# dmidecode -t 0 # dmidecode 2.12 # SMBIOS entr...