人気記事

RaspberryPi SpringBoot

SpringBootアプリ+PostgreSQLをラズパイで動作

更新日:

前回はSpringBoot+Postgresqlで作成したクイズアプリをMac上で動作させましたが、今回はラズパイ上で動かしてみました。

SpringBootによるクイズアプリの作成は以下の記事に書いています。

クイズアプリをSpringBoot+PostgreSQL+MyBatis+Thymeleafで作る(3)【Controller,フロントエンド作成】

環境

モデル:Raspberry Pi 3 Model B Rev 1.2

OS:Raspbian GNU/Linux 10 (buster)

 

SpringBootのJarファイルを作成

SpringBootプロジェクトのpom.xmlと同階層にてターミナルを開き、「mvn clean install」を実行する。

BUILD SUCCESSとなればビルド成功し、targetフォルダ内にjarファイル(デフォルト設定ではQuestionSample-0.0.1-SNAPSHOT.jarという名前)が作成される。

データベースのバックアップ

pg_dumpというコマンドでバックアップが可能。

最初はpostgresにログインしてpg_dumpを実行しましたが保存先がどこかわかりませんでした。

そこで、筆者の環境(Mac)では以下のようにpg_dumpを実施したところ、コマンドを実行したディレクトリにバックアップを取得できました。

 

ラズパイにJavaとPostgreSQLをインストール

Javaインストール


Javaをインストールします。

インスール後、バージョンを確認します。

 

PostgreSQLインストール


PostgreSQLインストール前にupdateとupgradeを実施します。

筆者の環境では実施しないとインストールができませんでした。

続いて、PostgreSQLを以下のコマンドを実行しインストールします。

インスール後、バージョンを確認します。

 

PostgreSQLの設定

postgresql.confの設定


/etc/postgresql/11/main/postgresql.confのlisten_addressesを以下のように'*'に変更します。

 

pg_hba.confの設定


/etc/postgresql/11/main/pg_hba.conf の権限を以下のようにtrustに変更します。

※セキュリティを考慮していない設定なので注意

 

postgresql.conf及びにpg_hba.confの変更を反映させるためにpostgresqlを再起動します。

iptablesにPostgreSQLのポートを設定


PostgreSQLのポート番号をファイアウォールから除外するために /etc/iptables/rules.v4 に設定を行います。

筆者の環境ではrules.v4が存在しなかったため新規作成しました。

 

設定後、iptablesを再起動します。

 

ラズパイにデータベースをリストア

バックアップしたbackup.sqlをリストアします。

FileZilla等を用いてラズパイにbackup.sqlを転送します。今回の転送先は/home/piとします。

ラズパイにSSHでアクセスして/home/pi配下で以下のコマンドを実行してリストアします。

リストアされているか確認します。

 

ラズパイにリストアされていることが確認できました。

 

ラズパイでSpringBootアプリを実行

作成したQuestionSample-0.0.1-SNAPSHOT.jarをラズパイの/home/piに転送します。

/home/pi配下で以下のコマンドでSpringBootアプリを起動します。

ブラウザから<ラズパイのIPアドレス>:8085/questionにアクセスします。

筆者の環境ではラズパイのIPアドレスは192.168.100.80なので192.168.100.80:8085/questionとなります。

下図のようにトップページが表示されれば成功です。

出題の様子

 

以上がラズパイでSpringBoot+PostgreSQLを使ったクイズアプリの動作方法でした。

流石にMac上で動かした時に比べると動作が重い感じがしましたが、一応動くものなんだなと理解しました。

SpringBootはtomcatが内蔵されているのでWebサーバの設定無しで動かせて簡単だなと思いました。

 

今回は以上です。

-RaspberryPi, SpringBoot
-, , ,

Copyright© ITエンジニアへの転身 , 2021 All Rights Reserved Powered by STINGER.