Spring Bootで作ったアプリをVPSで動かしたときのメモ

Spring Bootで作った個人で使うアプリをVPSで動かそうとしたときの個人メモ。

Spring Bootのドキュメントに書いてあるのをなぞっただけです。

55. Installing Spring Boot applications

Fully Executable Applicationの作成

最近の (自分が使っているのは1.3.1.RELEASE) Spring Bootでは、init.d向け起動スクリプトやsystemd .serviceファイルのExecStartで指定できるスクリプトも兼ねたjar( Fully Executable Application )を生成することができる。

maven で spring-boot-maven-plugin を使っている場合はpomに次のように記述すると、mvn packageでFully Executable Applicationを生成できる。(mavenなのは、仕事で自分の関わるJavaプロジェクトでmavenをつかうことが多いから。gradleのプラグインもある)

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <executable>true</executable>
    </configuration>
</plugin>

systemdの設定

ドキュメントの通りなので省略。

.confで起動スクリプトのカスタマイズ

ログファイルのパスを指定したり、環境毎に読み込む設定ファイルを変えたい場合はどうすんの、という場合は、.confファイルを用意する。.confファイルは、jarファイルのディレクトリにjarファイルの拡張子を.confに置き換えた名前で設置するルール。例えば、jarファイルが/var/sample-app/sample-app.jarだったら、/var/sample-app/sample-app.confといった具合になる。

自分の場合はこんなかんじ。

export SPRING_PROFILES_ACTIVE=production
export LOG_FOLDER=/var/sample-app/logs

他にも、JVMに渡すオプションやらアプリケーションに直接渡す引数もここで指定すればよろしい。

以上、もうちょい細かく設定すべきことはある気がするが、意外と手数が少なくアプリをVPSで動かすことができた。Spring Boot、ドキュメントがしっかり整備されているのがありがたい。