管理システム構築手順
1. 目的
本手順は、管理システム(FRUCtoSの管理を行うWebアプリケーション)を動作させる環境を構築するための手順を記載しています。
なお、本手順は以下に関する基本的な知識をもつ方を対象としています。
- FRUCtoS
- Docker
2. 必要な環境
2.1. サーバ
管理システムのOSはFRUCtoSに準じます。
また、管理システムはDockerコンテナ上での動作を前提としています。
2.2. FRUCtoS
管理システムはFRUCtoSに対してアクセスするため、同一ネットワーク内にFRUCtoSが既に構築・起動されていることを前提としています。
3. 準備
3.1. 資材のダウンロード
管理システムの構築に必要な資材は、FRUCtoSの資材に梱包されています。
FRUCtoSの資材をお持ちでない場合は、こちらからお申込みください。
4. 構築手順
4.1. Dockerイメージ・コンテナの作成準備
Dockerイメージ・コンテナの作成に必要な情報を設定します。
下記ファイルをメモ帳などで開き、必要に応じて修正してください。
caution
注意 セキュリティ上の観点から、DBの接続情報やコンテナのポート番号の変更をお勧めします。
4.1.1 .envファイルの修正
修正対象:
$WORK/dist/fructos_admin_docker/.env修正内容:
DBの接続情報
管理システムはDBMSとしてPostgreSQLを使用します。DBの接続情報は環境変数として以下の通り設定されているため変更可能です。
※ 接続情報を変更した場合は管理システムの設定ファイルも変更する必要があります。ADMIN_PSQL_USER=admin ・・・(ユーザ名)
ADMIN_PSQL_PASSWORD=admin ・・・(パスワード)
ADMIN_PSQL_DB=admindb ・・・(DB名)FRUCtoSのDockerコンテナへの接続情報
管理システムはFRUCtoSに接続します。
以下のコマンドを実行し、FRUCtoSのDockerコンテナのIPアドレスを.envファイルに設定してください。コマンド
$ docker exec -it FRUCtoS_tomcat hostname -i
.envファイル
FRUCTOS_DOCKERHOST=xxx.xx.x.x ・・・(FRUCtoSのDockerコンテナのIPアドレス)
4.1.2 docker-compose.ymlの修正
AppArmor動作環境(例:Ubuntu22 等)の場合は以下修正を行ってください。
- 修正対象:
$WORK/dist/fructos_admin_docker/docker-compose.yml - 修正内容:
- 以下security_optの記載を追記する
environment:
TZ: Asia/Tokyo
security_opt: // 追加
- apparmor:unconfined // 追加
networks:
- of_net
- postgres_of_net
- 以下security_optの記載を追記する
4.2. Dockerコンテナ作成と起動
以降、$WORK/dist/fructos_admin_docker フォルダで docker-compose コマンドを実行します。
注意
docker-composeのバージョンがv2.0.0以上の場合、以降のドキュメントサイトに記載されているdocker-compose
コマンドをdocker compose
コマンドに読み替えて実行してください。
過去にインストールした管理システムのDocker環境が残ってる場合には7.環境削除を参照してください。
4.2.1. Dockerイメージ・コンテナの作成と起動
以下コマンドを実行します。
$ docker-compose up -d --build
4.2.2. Dockerコンテナの起動確認
docker-compose ps コマンドでコンテナの起動状態を確認します。
Stateが全てUpになっていればコンテナは正常に起動しています。
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------
admin_postgres docker-entrypoint.sh postgres Up 0.0.0.0:5532->5432/tcp,:::5532->5432/tcp
admin_tomcat /bin/sh -c mount -a && /us ... Up 0.0.0.0:8180->8080/tcp,:::8180->8080/tcp
4.2.3. 管理システムの起動確認
docker-compose logs コマンドで管理システムの起動状態を確認します。
admin_tomcat の Server startup が表示されていれば起動完了です。
$ docker-compose logs -f
....
admin_tomcat | 28-Apr-2022 17:36:08.729 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [25149] milliseconds
5. 動作確認
5.1. ログイン
管理システムは以下のURLからログインします。
http://localhost:8180/fructos-admin/
DBに登録されているアカウント情報でログイン出来ることを確認してください。
初回ログインする際は、以下のアカウント情報でログインすることができます。
- ログインユーザ名 :admin
- パスワード :Pa55w0rd
5.2. ログアウト
管理システムからログアウトする際はブラウザの閉じるボタンを使用せず、ログアウトボタンより行ってください。万が一、ブラウザの閉じるボタンで終了した場合、次回正常にログインできない可能性があります。
6. 停止と起動
管理システムの停止・起動はDockerコンテナの停止・起動により行います。停止・起動はFRUCtoS が起動していることが前提となります。
以降、$WORK/dist/fructos_admin_docker フォルダで docker-compose コマンドを実行します。
6.1. 管理システムの停止
docker-compose stopコマンドで停止します。その後 docker-compose ps コマンドにより状態がExitであることを確認します。
$ docker-compose stop
Stopping admin_tomcat ... done
Stopping admin_postgres ... done
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------
admin_postgres docker-entrypoint.sh postgres Exit 0
admin_tomcat /bin/sh -c mount -a && /us ... Exit 137
6.2. 管理システムの起動
docker-compose startコマンドで起動します。その後 docker-compose ps コマンドにより状態がUpであることを確認します。
$ docker-compose start
Starting db ... done
Starting tomcat ... done
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------
admin_postgres docker-entrypoint.sh postgres Up 0.0.0.0:5532->5432/tcp,:::5532->5432/tcp
admin_tomcat /bin/sh -c mount -a && /us ... Up 0.0.0.0:8180->8080/tcp,:::8180->8080/tcp
7. 環境削除
7.1. 管理システムの環境削除
$WORK/dist/fructos_admin_docker フォルダで、以下コマンドを実行します。
$ docker-compose down --rmi all
7.2. Databaseイメージの削除
docker volume ls コマンドで確認後、 docker volume rm コマンドにより、fructos_admin_docker_database (管理システム用のDB)を削除します。
$ docker volume ls
DRIVER VOLUME_NAME
local fructos_admin_docker_database
$ docker volume rm fructos_admin_docker_database
fructos_admin_docker_database