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服务器的,配置完成后点击保存即可,为后面我们配置自动化部署做准备。
安全配置
集成配置
构建任务并拉取代码
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 命令,强制终止相应的进程。