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

继前面讲解了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已提前配置免密登录。
免密登录配置参考:

其他相关参考文章:

 

原创文章,作者:506227337,如若转载,请注明出处:https://blog.ytso.com/243934.html

(0)
上一篇 2022年4月11日
下一篇 2022年4月11日

相关推荐

发表回复

登录后才能评论