メインコンテンツまでスキップ
シングルテナンシー版:v4.0.0

ミドルウェア更新手順(Apache Tomcat/JDK)

1. 目的​

本手順は、FRUCtoSの稼働基盤として利用しているサードパーティ製ミドルウェア(Apache Tomcat/Eclipse Temurin JDK)について、提供元より公開されたセキュリティアップデートを取り込むための手順です。

本件は FRUCtoS 本体の不具合対応ではありません。標準的な稼働環境における直接的な影響は確認されておりませんが、システムの長期的な安全性維持および予防的措置の一環として、依存ミドルウェアの最新化を推奨します。

お客様の運用スケジュールに合わせて、最新の公式Dockerイメージを再取得し、コンテナの再作成を実施してください。

注記
  • 本手順は製品パッケージのバージョンアップ手順とは異なります。
  • 本対応に伴うデータベースの再作成や再初期化は不要です。
  • docker compose down -v など volume を削除する操作は行わないでください。

2. 推奨バージョン​

対象推奨バージョン
Apache Tomcat10.1.61 以上
JDK 17(Eclipse Temurin)17.0.21 以上

ご利用のDockerfileの FROM が tomcat:10.1-jdk17-temurin などの浮動タグの場合、公式イメージ更新後の再ビルドで取り込みできます。版をピン留めしている場合は、推奨バージョンのタグへ更新したうえで再ビルドしてください。

3. 実施前の確認​

3.1. 現状使用中のバージョン確認​

まず、いま稼働している環境の版を確認してください。すでに推奨バージョンであれば、以降の作業は不要です。

# JDK
docker exec FRUCtoS_tomcat java -version

# Tomcat
docker exec FRUCtoS_tomcat bash -c 'grep "Apache Tomcat Version" /usr/local/tomcat/RELEASE-NOTES | head -1'

コンテナ名が異なる場合は、実際のTomcatコンテナ名に読み替えてください。

docker ps --format '{{.Names}}'

管理システムを利用している場合:

docker exec admin_tomcat java -version
docker exec admin_tomcat bash -c 'grep "Apache Tomcat Version" /usr/local/tomcat/RELEASE-NOTES | head -1'
項目更新前の例推奨
Tomcat10.1.60 など10.1.61 以上
JDK 1717.0.20.1 など17.0.21 以上

3.2. ベースイメージの確認​

更新が必要な場合、再ビルドの前に公式イメージへ推奨バージョンが入っていることを確認してください。
判断は Tomcat公式イメージ内 の版で行ってください。

docker pull tomcat:10.1-jdk17-temurin
docker run --rm tomcat:10.1-jdk17-temurin java -version

17.0.21 以上と表示されれば、再ビルドを実施できます。

Tomcat版もあわせて確認する場合:

docker run --rm tomcat:10.1-jdk17-temurin bash -c 'grep "Apache Tomcat Version" /usr/local/tomcat/RELEASE-NOTES | head -1'

4. 対応手順​

3. 実施前の確認 の結果、更新が必要であり、かつベースイメージに推奨バージョンが入っていることを確認したうえで実施してください。

作業は配布パッケージ展開後の dist/fructos_docker ディレクトリ(環境に応じた compose 配置場所)で実施してください。

cd <fructos_docker のパス>

# 最新のベースイメージを取得して再ビルド
docker compose build --pull

# コンテナを再作成して起動(restart では不可)
docker compose up -d

docker-compose コマンドをご利用の場合は、上記を docker-compose に読み替えてください。

注意

docker restart や docker compose restart のみではイメージが更新されません。必ず再ビルド後にコンテナを再作成してください。

4.1. 管理システム(fructos_admin_docker)を利用している場合​

管理システムも本体と同様のベースイメージを利用しているため、管理システムを構築・利用している場合は、あわせて再ビルドが必要です。

cd <fructos_admin_docker のパス>

docker compose build --pull
docker compose up -d

確認例(コンテナ名は環境により異なります):

docker exec admin_tomcat java -version
docker exec admin_tomcat bash -c 'grep "Apache Tomcat Version" /usr/local/tomcat/RELEASE-NOTES | head -1'
注記

fructos_admin_docker_attachment は本体(fructos_docker)への資材差し替え用です。attachment を適用済みの場合は、本体側の再ビルドに含まれます。管理システム本体のコンテナは、上記 fructos_admin_docker 側の再ビルドが別途必要です。

5. 実施後のバージョン確認​

# JDK
docker exec FRUCtoS_tomcat java -version

# Tomcat
docker exec FRUCtoS_tomcat bash -c 'grep "Apache Tomcat Version" /usr/local/tomcat/RELEASE-NOTES | head -1'

コンテナ名が異なる場合は、実際のTomcatコンテナ名に読み替えてください。

docker ps --format '{{.Names}}'

5.1. 確認の目安​

項目期待する表示例
TomcatApache Tomcat Version 10.1.61
JDK 17openjdk version "17.0.21" など
注記

FRUCtoSアプリケーション自体のバージョン確認は、バージョン確認方法(CapabilityStatement)を参照してください。

6. 注意事項​

  • データベースの再作成・再初期化は不要です。volume を削除しなければデータは保持されます。
  • 管理システム(fructos_admin_docker)を利用している場合は、4.1 のとおり再ビルドしてください。
  • Keycloak Gateway 等、別composeで起動しているコンポーネントも、同様のベースイメージを利用している場合は、必要に応じて同様の再ビルドを実施してください。