Spring Boot で作ったものをLinux(CentOS)上でどうやったらイイのか。。
SpringBoot = Spring + tomcat だということで、ビルドして出来上がった jar を、
1 |
java -jar xxxx.jar |
するだけで8080で確認できるそうです。おぉー楽ちんぢゃん。
でもそれだと毎回コマンドラインから実行しないといけなくなるわけで。
サービス登録する方法を調べました。
SpringBootで作ったjarをinit.dのサービスとして動かしてみた
Spring Boot 1.5 から 2.1 に移行した時にハマったこと
コチラがベースになっています。
が。。build.gradleに追加する記述は違います。gradleのバージョンのせい??
1 2 3 4 5 6 7 8 9 10 |
//以下ではエラーになります //springBoot { // executable = true //} apply plugin: 'org.springframework.boot' bootJar { launchScript() } |
jar と同じ名前で xxxx.conf を作る。本番環境とか開発環境とか環境変数を設定した場合切り替える。
1 2 3 |
export JAVA_HOME=/usr/local/jdk1.8 ←javaを配置したとこ export JAVA_OPTS="-Dspring.profiles.active=production" ←環境変数切替 export LANG="ja_JP.UTF-8" |
ちなみに 自環境では「JAVA_OPTS=”-Dspring.profiles.active=dev”」。開発環境用環境変数です。
「vi make」で種々のコマンドまとめて作成しました。
VMの共有フォルダにWinのEclipseのワークスペースを共有しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#!/usr/bin/env sh #gradle build 実施 cd /media/sf_workspace/demo bash ./gradlew build #コピー配置デプロイ cp -f /media/sf_workspace/demo/build/libs/demo-0.0.1-SNAPSHOT.jar /media/sf_workspace/demo/build/deploy/ #サービス停止 service demo-0.0.1-SNAPSHOT stop chkconfig demo-0.0.1-SNAPSHOT off #init.d削除 rm -f /etc/rc.d/init.d/demo-0.0.1-SNAPSHOT #init.d登録 ln -s /media/sf_workspace/demo/build/deploy/demo-0.0.1-SNAPSHOT.jar /etc/init.d/demo-0.0.1-SNAPSHOT #サービス実行 service demo-0.0.1-SNAPSHOT start chkconfig demo-0.0.1-SNAPSHOT on #確認 service demo-0.0.1-SNAPSHOT status |
これで「./make」でまとめてすべて実行できます。
そういえば。。会社で Lombbok 設定したら軒並みエラーが出たんですが。。
これかも。