Jakarta EEアプリケーションを配備したDockerイメージの作成の流れを以下に示します。
Dockerイメージの作成環境で以下の手順に従い、Jakarta EEアプリケーション配備済みDockerイメージを作成します。
GlassFish運用資産の用意
本番開発環境からバックアップしたGlassFish運用資産をDockerイメージ作成環境のディレクトリ"/docker/backup/"にコピーしてください。
注意
Red Hat OpenShift上(プロダクション環境)に新規にGlassFish実行環境を作成する場合、本番開発環境にプロダクション環境と同じ構成のGlassFish実行環境を作成し、GlassFish運用資産をバックアップしてください。
本番開発環境は、オンプレミスやVM、コンテナどれでも可能です。
バックアップ対象となる基本的な資材は以下の3つです。
GlassFish
Webサーバ(Interstage HTTP Server 2.4)
Webサーバコネクタ(Interstage HTTP Server 2.4用)
シングル・サインオンの業務サーバ機能など、連携する機能を利用している場合は必要に応じて追加してください。
バックアップ方法については、以下のマニュアルの記事を参照してください。
「運用ガイド(基本編)」の「メンテナンス(資源のバックアップ/他サーバへの資源移行/ホスト情報の変更)」
Red Hat OpenShift環境でのコンテナ起動時にJakarta EEアプリケーションを自動起動するために、バックアップ前に、DAS/サーバーインスタンスの自動起動を設定してください。ただし、以下のいずれかに該当する場合は設定不要です。
Red Hat OpenShift環境でコンテナを起動する際、DAS/サーバーインスタンスの自動起動が不要の場合。または、
既存のGlassFish実行環境で既に自動起動を設定済みの場合。
DAS/サーバーインスタンスの自動起動の設定方法については、以下を参照してください。
「GlassFish 設計・構築・運用ガイド」の「Jakarta EEアプリケーションの運用」-「PCMIサービスの運用」-「サービスの起動時/停止時の出口機能」
Red Hat OpenShift環境でGlassFish Server管理コンソールを使用する場合は、バックアップ前に、本番開発環境のDASの運用管理用HTTPリスナーのポート番号を、NodePortで使用するポート番号に変更してください。
GlassFish資材のリストア
「3.2.1 GlassFishベアイメージの作成」で作成したDockerイメージから、--privilegedオプションを指定しDockerコンテナを作成します。
以下は、docker runコマンドを使用し、イメージ名"glassfishbareimage:1.0"のベアイメージから、コンテナ名"tmpglassfishapp"のコンテナを作成する場合の例です。
# docker run --privileged --name tmpglassfishapp -di glassfishbareimage:1.0
「手順1」で用意したGlassFish運用資産を、「手順2-1」で作成したDockerコンテナにコピーします。
以下は、ディレクトリ"/docker/backup"にコピーしたGlassFish運用資産を、docker cpコマンドを使用してコンテナ名"tmpglassfishapp"のコンテナ内のディレクトリ"/backup/"にコピーする場合の例です。
# docker cp /docker/backup tmpglassfishapp:/backup/
「手順2-1」で作成したDockerコンテナ上でGlassFish運用資産をリストアします。
リストア方法の詳細については、以下を参照してください。
「運用ガイド(基本編)」の「メンテナンス(資源のバックアップ/他サーバへの資源移行/ホスト情報の変更)」
注意
GlassFishでディレクトリ配備を使用しているアプリ資産は、上記方法によるリストアの対象となりません。バックアップ時と同じパスに別途リストアしてください。
以下は、シェルスクリプトによりGlassFish運用資産のリストアを一括で実行する例です。シェルスクリプトの作成例は、「A.1.3 一括リストア用シェルスクリプト」を参照してください。
# docker cp /docker/work/isimport tmpglassfishapp:/work/ # docker exec -it tmpglassfishapp /opt/FJSVisas/bin/isservicestop.sh # docker exec -it tmpglassfishapp /work/isimport
上記例の/docker/work/isimportはサンプルを流用して作成したシェルスクリプトです。
Jakarta EEアプリケーション配備済みDockerイメージの作成
docker commitコマンドを実行し、「手順2」で作成したDockerコンテナを元に、Jakarta EEアプリケーション配備済みDockerイメージを作成します。
以下は、コンテナ名"tmpglassfishapp"のコンテナを元に、イメージ名"glassfishapp:1.0"のJakarta EEアプリケーション配備済みDockerイメージを作成する場合の例です。
# docker commit tmpglassfishapp glassfishapp:1.0
コンテナ名"tmpglassfishapp"のコンテナを停止し、削除します。
# docker stop tmpglassfishapp # docker rm tmpglassfishapp