jenkins自動部署springboot應用


最近公司在利用jenkins自動部署springboot應用,以前別人配的那個jenkins雖說可以正常部署,但是多次反復部署之后jenkins會報錯,提示內存不足:

Maven JVM terminated unexpectedly with exit code 137

原因是因為jenkins沒有配置部署新的應用前先把舊的應用進程先kill掉而導致在服務器上有多個應用進程。因此自己決定摸索如何配置jenkins可以每次部署都把舊進程kill掉再啟動新進程。

 

一、首先需要先配置好jenkins的基本配置,這些就不在這里一一詳述了,只寫一個Publish over SSH

1、先安裝好該插件 :Publish over SSH

2、配置如下:

 

 

點開下面的高級配置登錄linux服務器的密碼。

 

2、然后就是配置部署項目的東西了。

配置從源碼庫拉取代碼:

構建環境中勾選,代碼構建的過程中會將日志打印出來

Pre Steps和Build:

 

Post Steps:

Exec command中是要通過SSH去服務器上執行的腳步以及腳本文件;

Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 項目jar包名
Remove prefix:target/
Remote directory: 代碼應用服務器的目錄地址,
Exec command:應用服務器對應的腳本。

 

以下是腳本文件內容:

stop.sh

#!/bin/bash
echo "stop SpringBoot BAppApiServerApplication"
pid=`ps -ef | grep ejoyst-bappapi-gateway.jar | grep -v grep | awk '{print $2}'`
echo “舊應用進程id:$pid”
if [ -n "$pid" ]
then
kill -9 $pid
fi

 start.sh

#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_161
echo ${JAVA_HOME}
echo "授權當前用戶"
chmod 777 /opt/deploy/ejoyst-bappapi-gateway.jar
echo "執行...."
cd /opt/deploy/
nohup ${JAVA_HOME}/bin/java -jar ejoyst-bappapi-gateway.jar > /dev/null &
echo "啟動成功"

 

構建后操作中 配置Archive the artifacts:內容是當前構建應用的jar包或者war包的相對路徑,


這樣可以在部署成功頁面看到,可以直接點擊下載:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM