Jenkins启动springboot记录


Jenkins启动springboot记录

  1. 部署思路:

    拉取代码---》打包---》备份jar包到另一个目录(避免打包出问题)---》启动备份的那一个jar包

  2. 问题描述:

    1. 配置好maven、git、之后,配置构建之后动作,出现一个问题,在Jenkins里面执行Linux上面的启动脚本时不成功,Jenkins显示是成功了,但是脚本的启动语句执行失败了,具体原因不清楚,但是在Linux上面直接执行脚本是可以成功启动的,经过测试总结出应该是权限问题,但问题是Jenkins用户在安装的时候已经由Jenkins换成root,测试在Jenkins的指令框里面执行启动命令时是可以成功启动的,所以改变了下思路

  3. 解决方案:

    1. 把springboot的jar包备份、执行进程号关闭放在脚本里面,执行完脚本之后在Jenkins指令框中执行启动命令,一遍执行可能不成功,两遍才能成功(不知道是不是启动慢的问题)

  4. 代码:

    sh /var/lib/jenkins/workspace/testt_start
    ?
    cd /var/lib/jenkins/workspace/server
    ?
    nohup java -jar testt-1.0-SNAPSHOT.jar > out.log 2>&1 &

     

    对应的testt_start

#! /bin/bash
?
echo "stop SpringBoot testt-api"
?
pidstr=$(lsof -i:8899 |awk '{print $2}' | tail -n 2)
echo "获得进程号:"$pidstr
?
pid=${pidstr:4}
echo "截取到进程号"$pid
?
#杀掉以前可能启动的项目进程
?
if [ -n "$pid" ]; then
       kill -9 $pid;
fi
?
rm -rf /var/lib/jenkins/workspace/server/testt-1.0-SNAPSHOT.jar
?
echo "copy SpringBoot testt-api"
cp /var/lib/jenkins/workspace/testt/target/testt-1.0-SNAPSHOT.jar /var/lib/jenkins/workspace/server/testt-1.0-SNAPSHOT.jar
?
cd /var/lib/jenkins/workspace/server
echo "当前目录是:"
pwd
?
echo "start SpringBoot testt"
nohup java -jar testt-1.0-SNAPSHOT.jar > out.log 2>&1 &
?
exit