読者です 読者をやめる 読者になる 読者になる

kitak.blog

Kみたいなエンジニアになりたいブログ

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

Java

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、ドキュメントがしっかり整備されているのがありがたい。