当前位置: 首页 > article >正文

Jenkins部署springboot项目 记录一下过程

拉取环境(下载jenkis jar包也可以)

注意给jenkis运行分配只够的内存空间,不然会崩溃

docker pull jenkins/jenkins:2.346.3-2-lts-jdk8
docker run -p 8080:8080 -p 50000:50000 --name jenkins-blog --restart=always -d -v /var/run/docker.sock:/var/run/docker.sock -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts


/mysoftware/jdk1.8.0_11

-m 1024m

docker run -p 8080:8080 -p 50000:50000  --name jenkins-blog --restart=always -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/jenkins_home:/var/jenkins_home -v /mysoftware/jdk-11.0.15.1:/mysoftware/jdk-11.0.15.1 -v /mysoftware/apache-maven-3.5.0:/mysoftware/apache-maven-3.5.0 -v /mysoftware/node-v14.21.3-linux-x64:/mysoftware/node-v14.21.3-linux-x64 jenkins/jenkins:latest



/mydata/nginx-1/html

docker run -p 8080:8080 -p 50000:50000  --name jenkins-blog --restart=always -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/jenkins_home:/var/jenkins_home -v /mysoftware/jdk-11.0.15.1:/mysoftware/jdk-11.0.15.1 -v /mysoftware/apache-maven-3.5.0:/mysoftware/apache-maven-3.5.0 -v /mysoftware/node-v14.21.3-linux-x64:/mysoftware/node-v14.21.3-linux-x64 -v /mydata/nginx/html:/mydata/nginx/html -v /mydata/nginx-1/html:/mydata/nginx-1/html jenkins/jenkins:latest
java -DJENKINS_HOME=/var/jenkins_home -jar /mysoftware/jenkins.war &

cd /var/jenkins_home/secrets
cat  initialAdminPassword

必要插件

中文插件:Localization: Chinese (Simplified)

插件1:Publish over SSH
插件2:Deploy to container Plugin

基本配置

系统配置

在系统设置这里,我们只需要设置最后面的一项,配置远程服务器地址,

即我们代码最终运行的服务器地址信息,就像我们之前手动部署时使用xshell登录Linux服务器一样,

当然这里是可以配置多台远程Linux服务器的,配置完成后点击保存即可,为后面我们配置自动化部署做准备。

这里的代码上传地址与任务里面的选其一

安全配置

集成配置

构建任务并拉取代码

新建任务

在这里插入图片描述

maven打包及命令

构建之后

开启 SSH 操作日志,开启日志之后,就可以看到 Jenkins 中操作应用服务器其的过程了

在这里插入图片描述

touch deploy.sh

chmod +x deploy.sh 


export JAVA_HOME=/mysoftware/jdk-11.0.15.1
export PATH=${JAVA_HOME}/bin:$PATH

JAR_PATH=/www/app

JARFILE=blog-service-0.0.1-SNAPSHOT.jar

ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9

java -jar -Xms128m -Xmx128m -XX:MaxMetaspaceSize=128m $JAR_PATH/$JARFILE > /www/appout.log &
if [ $? = 0 ];then
        sleep 30
        tail -n 50 /www/appout.log
fi



[ $? = 0 ] 检查上一条命令(即 java -jar ...)的退出状态码,如果为0,则代表命令执行成功。
sleep 30 让脚本暂停30秒,给予新启动的Java程序一些时间来初始化和生成日志。
tail -n 50 out.log 输出 out.log 文件最后50行内容,通常用来检查程序启动后的最新日志记录。


ps -ef 列出所有进程的详细信息。
grep $JARFILE 查找包含指定JAR文件名的进程。
grep -v grep 从结果中排除当前执行的 grep 命令自身,防止误杀。
awk '{print $2}' 提取第二列(进程ID,PID)。
xargs kill -9 将提取出的PID传递给 kill -9 命令,强制终止相应的进程。

http://www.kler.cn/a/368784.html

相关文章:

  • 【modbus协议】libmodbus库移植基于linux平台
  • 手指关节分割系统:视觉算法突破
  • C++ 编程基础:深入理解 `pair`(键值对) 和 `unordered_map`(无序映射)
  • 【牛客算法】某司面试算法题:找出最长山脉的长度
  • 图---java---黑马
  • UHF机械高频头的知识和待学习的疑问
  • LeetCode 107.二叉树的层次遍历 II
  • Flutter按钮控件(六)
  • 冒泡排序和二分查找--go
  • 报错解决:opene3d draw_geometries(): incompatible function arguments.
  • 智能工厂的设计软件 意识能力(被动综合/主动把握/折衷解决):意识形态及认知计算机科学的架构、系统和运用
  • Linux学习_7
  • C++学习路线(二十六)
  • Mysql 数据库架构
  • 每天五分钟深度学习框架pytorch:从底层搭建多项式线性回归模型
  • 云原生后端(Cloud-Native Backend)
  • 【Web开发】什么是Nuxt? 利用Nuxt快速搭建前端项目
  • R语言笔记(二):向量
  • MySQL之数据库设计
  • ReactNative0.76版本发布,默认开启新架构
  • 【K8S系列】Kubernetes Service 基础知识 详细介绍
  • java和嵌入式现在哪个好?
  • 【深入理解SpringCloud微服务】Sentinel实战与原理剖析
  • 重修设计模式-行为型-迭代器模式
  • 了解光耦合器输入输出关系---腾恩科技
  • 区块链国赛题目--食品溯源(模块三)