《Docker+Jenkis+Gitlab+Springboot简单发布》
自动化发布到服务器并自动运行
确保已经安装了Publish Over SSH插件以及在系统配置——》Configure System——》配置了Publish over SSH服务器相关信息
Post Steps(构建)
部署脚本(构建成功,脚本却没有执行,即项目没启动。应该是少了这句source /etc/profile)
source /etc/profile
nohup java -jar /jenkins/gitlabdemo/gitlabdemo*.jar >/dev/null 2>&1 &
Pre Steps(构建前)
部署服务器创建脚本
vim /jenkins/gitlabdemo_build_front.sh
#!/bin/bash
#删除历史数据
rm -rf gitlabdemo/*
appname=$1
#获取传入的参数
echo "arg:$1"
#获取正在运行的jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`
echo $pid
#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断
then
echo "$appname not started"
else
kill -9 $pid
echo "$appname stoping...."
check="`ps -ef | grep -w $pid | grep java`"
if [ -z $check ];
then
echo "$appname pid:$pid is stop"
else
echo "$appname stop failed"
fi
fi
授权脚本可执行权限,不然构建的时候会抛出异常:[Exec exit status not zero. Status [126]]
chmod +x /jenkins/gitlabdemo_build_front.sh
回到jenkins
sh /jenkins/gitlabdemo_build_front.sh gitlabdemo