Docker-安装Jenkins-使用jenkins发版Java项目
文章目录
- 0.前言
- 环境背景
- 1.操作流程
- 1.1前期准备工作
- 1.1.1环境变量的配置
- 1.2使用流水线的方式进行发版
- 1.2.1新建流水线任务
- 1.2.2流水线操作
- 工具tools
- 步骤stages
- 步骤1:拉取代码+编译
- 步骤2:发送文件并启动
0.前言
学海无涯,旅“途”漫漫,“途”中小记,如有错误,敬请指出,在此拜谢!
环境背景
环境 | 版本 |
---|---|
电脑 | MAC M2 max |
docker | Docker version 20.10.22, build 3a2c30b |
其他 | 此处使用了Docker Desktop |
1.操作流程
根据上一篇文章,安装完Jenkins后,即可进行Java项目的配置。对于发版Java项目,旧版本的Jenkins使用插件进行发版。新版本的Jenkins可以使用流水线的方式进行发版。此处两种方式都进行介绍。
1.1前期准备工作
1.1.1环境变量的配置
进入系统管理,配置maven、jdk、ssh参数。
(1)配置maven、jdk
进入全局工具配置,就能看见maven和jdk的配置。此处可以使用你本地的配置,也可以让jenkins自己安装。按照提示自己安装就行。当然,此处也可以配置maven的setting.xml和其他的插件。此处不做多余赘述,如出现问题可以私聊我。
(2)配置ssh服务属性
进入系统配置,页面中搜索ssh,能找到Publish over SSH的位置(如果未找到,回到系统管理才到,会找到插件管理。可以在插件管理里面安装Publish over SSH)
1.2使用流水线的方式进行发版
1.2.1新建流水线任务
点击新建任务,输入名称,选择流水线,点击确定
1.2.2流水线操作
找到下方流水线,便能看到流水线内容输入框,这里是最重要的地方。(如果脚本框不显示,就点击保存后,重新进入配置编辑,就会显示了)
此处粘贴我的流水线脚本全文,我在分步进行解释。
pipeline {agent anytools {maven "maven3.8.7"}stages {stage('服务编译') {steps {git credentialsId: 'xxx', url: 'xxxx'sh "mvn -s /usr/environment/maven/settings-docker.xml clean package -Dmaven.test.skip=true"}}stage("服务传输、启动"){steps {# xxx}}}}
工具tools
tools部分,是配置maven,这块如果使用系统默认的maven的话,就可以删了。如果需要特定maven的话,就在jenkins配置maven后,在此处配置maven的名称。代码如下:
tools {maven "maven3.8.7"
}
步骤stages
此处可以分步骤来进行操作,比如下属代码:
stages {stage('步骤一') {steps {操作1.1}}stage("步骤二"){steps {操作2.1}}
}
此处我们步骤一是拉取代码,步骤二是对服务器进行发版处理。
不要担心流水线语法自己不会,jenkins安心的给你准备了流水线语法生成器,如图:
步骤1:拉取代码+编译
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TZqL8bVy-1676189304717)(evernotecid://3560A1D2-2684-4104-9AF8-0F51B73094EC/appyinxiangcom/6351724/ENResource/p615)]
然后将这个数据填入到steps里面内容。例如:
stage('步骤一') {steps {git credentialsId: '056884ee-4185-44b9-ac82-833be2526ce5', url: 'http://x.x.x.x.x/a.git'}
}
步骤2:发送文件并启动
服务选择sshPublisher
对应参数如下
(1)Source files
你准备传递的文件地址,这里的地址指的是当前文件在工作工作空间的相对地址哈。你可以把发送文件的这一步的steps注释掉,先只进行编译,在工作空间查看位置。
此处最后就可以填写位置路径,比如:
yudao-server/target/yudao-server.jar
(2)Remove prefix
这个呢,是要删除的前缀,针对于上面来说,就是
yudao-server/target
(3)Remote directory
这个是待发版的目标地址,比如
/opt/yudao-server/api/temp
(4)Exec command
待执行的命令,根据自己需求来编写shell脚本。此处看需求,没什么好讲的。我把我的粘进来
# kill正在启动的服务。此处是根据后面的查询条件,来查询服务的进程号,从而杀掉。
kill -9 `ps -ef | grep 'yudao-server.jar' | grep -v 'grep' | awk '{print $2}'`
# 打开文件夹
cd /opt/test/yudao-server-api
# 将之前的服务增加时间后缀做备份
mv yudao-server.jar yudao-server.jar-$(date "+%Y%m%d%H%M%S")
# 把之前上传的服务从临时文件夹移到工作空间文件夹里面
mv ./temp/yudao-server.jar ./
# 启动
nohup java -jar -Xms128m -Xmx128m /opt/test/yudao-server-api/yudao-server.jar --spring.profiles.active=prod >> /dev/null 2>&1 &
以上内容填写完后点击生成流水线,粘进steps中就行了。
Docker-安装Jenkins-使用jenkins发版Java项目相关推荐
- Jenkins持续集成实践之java项目自动化部署
关于Linux安装Jenkins可以参考我的这篇博文Ubuntu16.04环境安装jenkins 1.安装部署插件 进入插件管理,并搜索该插件Deploy to container Plugin进行安 ...
- Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)
实现流程: 手动部署Java项目至后端Web集群 1.搭建Nginx+Tomcat集群架构. 2.开发提交Java源代码至Gitlab仓库. 3.手动获取Java源代码,然后使用Maven进行编译. ...
- Docker 安装 Redis 容器 (完整详细版)
Docker 安装 (完整详细版) Docker 日常命令大全(完整详细版) 1.获取Redis镜像 Docker如果想安装软件 , 必须先到 Docker 镜像仓库下载镜像. Docker 镜像仓库 ...
- docker host模式拿到nginx远程ip端口_FastDFS基于Docker安装,免采坑版
暂且不说Docker在生产环境的性能如何,单就在学习新技术的过程中能够快速构建环境这一项来说,就值得推荐你尝试使用.本文带大家基于Docker来安装FastDFS服务. 即便你对FastDFS的安装不 ...
- docker安装最新版Jenkins:拉取镜像/创建容器
拉取最新版Jenkins镜像: 创建Jenkins容器: 需要进入到容器内部获取初始化密码:
- Jenkins 前端 自动化发版/CICD
核心代码脚本: #!/bin/bash -il echo ${branch} echo ${branch} current=${branch} online="release" i ...
- 最简单的Jenkins+Tomcat+Gog(Git)解决Java项目自动化部署
网上很多关于jenkins做项目的自动化部署,各有各的方法,层出不穷,下面是我在自己的项目上做的自动化部署,很简单,可当做入门. 声明一下项目环境:非maven项目,平常直接打包成war包丢进tomc ...
- openwrt 软路由 docker安装青龙面板(基础版)
置顶:无条件部署的小伙伴可以直接上车,名额有限,手动获取 JD CK提交版 必要准备: 务必先下载好 京东.京喜.京东极速版三个app并开启以下活动(有些需要选择种植或者生产的物品自行选择即可,千万 ...
- Docker 安装 Nginx 容器 (完整详细版)
下载Nginx的docker官方镜像: docker pull nginx:latest 配置docker-compose.yml: docker-compose.yml: version: &quo ...
最新文章
- 没有可用于当前位置的源代码
- [BZOJ 4571][Scoi2016]美味(主席树)
- matlab chirp函数模糊函数,8个OFDM-Chirp波形的时频域图及自(互)模糊函数图
- Asp用FSO读写文件
- delphi listview动态添加图片_Java 添加PDF图章(印章)——图片图章、动态图章
- 论文阅读笔记——拥塞控制算法PCC Vivace
- Visio软件方案UML选择
- Win11截图键无法使用怎么办?Win11截图键无法使用的解决方法
- 2020计算机组成原理性考答案,中国文化通论、计算机组成原理试题
- unity给头发添加物理_U3D实时渲染教程之角色头发各向异性表达(上)
- 企业入职测试题目及答案_[企业入职性格测试题以及答案信息] 新员工入职性格测试题...
- Pycharm新建文件时,如何设置自动添加作者时间等信息
- 从输入URL到页面加载的过程?由一道题完善自己的Web前端知识体系!
- Docker容器之间数据传输
- TCP的三次握手和四次挥手
- 165页最全银行IT核心系统研究框架
- python 计算器 eval ctf_python 的eval函数
- 2020年全球吸附分离材料行业现状、竞争格局与发展环境分析,各国政策扶持,市场空间大「图」
- 怎么用C++编个网站
- 众贷网满月死亡 P2P网贷业将现倒闭潮?