jenkins による Spring Boot のデプロイメントは、Tomcat や Weblogic への以前のデプロイメントとは少し異なります。以前は、サーバーのリモート デプロイメントによって完了できるサーバーがすでに実行されていました。Spring Boot は組み込みサーバーであるため、jar パッケージをアプリケーションサーバーに送信し、Linux スクリプトを通じてサーバーを起動する必要があります。
構造の凡例:
詳細な手順:
ステップ 1: まず、jenkins ssh プラグインを構成してSSH 経由で公開する
システム管理 --- プラグイン管理、ssh プラグインのインストール
構成は次のとおりです。
remoto ディレクトリのパスは、ターゲット サーバー上でリモート操作のルート パスとしてパスを選択し、後続のファイル転送のパスはこのルート パスに相対的に配置されることを意味します。私は以前ここでこの落とし穴に遭遇し、後で / を使用しました。表現すること。実際の状況に応じて、次のパスが埋められます。
ステップ 2: Maven プロジェクトを作成する
基本的なコード構成は前の記事の Tomcat のデプロイ方法と似ているため、ここでは繰り返しません。質問がある場合は、前の記事jenkins+svn+ant+weblogic/tomcat の継続的インテグレーションのデプロイメントを参照してください。
ここでのパッケージ化方法はmavenを使ってコンパイルしてパッケージ化するもので、構成は以下の通りです
clean install -Dmaven.test.skip=true -Ptest
コンパイルされた SSH サービスを構成する
使用したスクリプトを添付します
DATE=$(date +%Y%m%d)
export JAVA_HOME=/usr/jdk1.8
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=/usr/local/app/leaf6-epbd
JARFILE=leaf6-epbd-rest-1.0.jar
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv $JARFILE backup/$JARFILE$DATE
mv -f /usr/local/jenkins-app/$JARFILE .
java -jar $JARFILE > out.log &
if [ $? = 0 ];then
sleep 30
tail -n 50 out.log
fi
cd backup/
ls -lt|wak 'NR>5{print $NF}'|xargs rm -rf
スクリプトの一般的な意味は次のように説明されています。
DIR はサーバーの展開フォルダーです
/usr/local/jenkins-app は、jar パッケージを受け取ったフォルダーです。
まずサーバースレッドを強制終了し、サーバーを停止します
次に、元のパッケージをバックアップ フォルダーにバックアップします。
最後に、サーバーにエクスポートしたjarパッケージをデプロイメントフォルダーに配置し、サービスを開始します
過去のバックアップと最新のいくつかのバックアップを削除します