继前面讲解了jenkin的安装Jenkins 2.319.1 LTS WAR文件安装方式 这里讲解下jenkin的基础部署流程。
以开发环境为例,通过jenkins流水线的方式 git拉取代码、maven编译spring boot项目、scp将项目传到其他服务器进行docker环境的发布。
Jenkins git认证凭据添加
首先配置git的访问认证。可以配置用户名+密码方式也可以配置用户名+公钥方式,jenkins的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语法生成
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已提前配置免密登录。
免密登录配置参考:
其他相关参考文章:
- CentOS 8.0-8.4 yum 安装docker-ce-左搜 (leftso.com)
- Ubuntu 在线安装 Docker-左搜 (leftso.com)
- Jenkins 构建时间显示错误解决-左搜 (leftso.com)
原创文章,作者:506227337,如若转载,请注明出处:https://blog.ytso.com/243934.html