J2EEアプリケーションを配備したDockerイメージの作成の流れを以下に示します。
Dockerイメージの作成環境で以下の手順に従い、J2EEアプリケーション配備済みDockerイメージを作成します。
Interstage資源の用意
本番開発環境から移出したInterstage資源をDockerイメージ作成環境のディレクトリ"/docker/backup/"にコピーしてください。
注意
Red Hat OpenShift上(プロダクション環境)に新規にJ2EE実行環境を作成する場合、本番開発環境にプロダクション環境と同じ構成のJ2EE実行環境を作成し、Interstage資源を移出してください。
本番開発環境は、オンプレミスやVM、コンテナどれでも可能です。
Interstage資源の移入とIPCパラメーターの設定解除
「4.2.1 J2EEベアイメージの作成」で作成したDockerイメージから、--privilegedオプションを指定しDockerコンテナを作成します。
以下は、docker runコマンドを使用し、イメージ名"j2eebare:1.0"のベアイメージから、コンテナ名"j2eebare_c"のコンテナを作成する場合の例です。
# docker run --privileged --name j2eebare_c -di --hostname=RH73IAPS -p 12000:12000 j2eebare:1.0
-pオプション(ポートマッピング)を付けたDockerコンテナをイメージ化することで、J2EEのコンテナをRed Hat OpenShift上で作成するための設定ファイルにServiceの定義が追加されるようになります。本手順では12000ポートを使うサービスが一つ存在する設定ファイルを出力する前提で説明しています。
「手順1」で用意したInterstage資源を、「手順2-1」で作成したDockerコンテナにコピーします。
アプリケーションが参照していてInterstage資源に含まれていないファイルがある場合は、そのファイルについてもDockerコンテナにコピーしてください。
以下は、ディレクトリ"/docker/backup"にコピーしたInterstage資源を、docker cpコマンドを使用してコンテナ名"j2eebare_c"のコンテナ内のディレクトリ"/interstage/backup_restore/"にコピーする場合の例です。
# docker cp /docker/backup/ j2eebare_c:/interstage/backup_restore/
Interstage資源を移入するためにDockerコンテナのシェルを実行します。
以下は、"j2eebare_c"コンテナで"/bin/bash"を実行する場合の例です。
# docker exec -it j2eebare_c /bin/bash
Dockerコンテナ内でInterstageを停止します。
/opt/FJSVisas/bin/isservicestop.shコマンドを使うと、すべての機能を停止することができます。
# /opt/FJSVisas/bin/isservicestop.sh
Interstage資源を移入します。
Interstage資源移出元ディレクトリは、chhostname.shのCOMMON_PATHに設定しているディレクトリです。
# COMMON_PATH=/interstage/backup_restore/backup /bin/csh -f /interstage/backup_restore/isimport
アプリケーションが参照していてInterstage資源に含まれていないファイルがある場合は、そのファイルを所定のディレクトリに配置してください。
移入方法の詳細については、以下を参照してください。
「運用ガイド(基本編)」の「メンテナンス(資源のバックアップ/他サーバへの資源移行/ホスト情報の変更)」-「他サーバへの資源移行」-「資源移入手順」
IPCパラメーターの設定を解除します。
Red Hat OpenShiftのPod に対するIPCパラメーターの設定を有効にするために、/etc/sysctl.confのIPCパラメーターの設定をコメントアウトする必要があります。
以下の例のように、「### for IAPS ###」に続く"kernel."で始まるパラメーターの設定をコメントアウトしてください。
### for IAPS ### #kernel.sem = 1100 35406 200 1600 #kernel.shmall = 4294967296 #kernel.shmmax = 68719476736 #kernel.shmmni = 4315 #kernel.msgmax = 65536 #kernel.msgmnb = 4194304 #kernel.msgmni = 8199
Red Hat OpenShift上でのDockerコンテナ作成時に不要な以下のファイルを削除します。
ホスト情報変更用シェルスクリプト(chhostname.sh)がホスト名を保持するファイル(/interstage/backup_restore/hostname)
シスログの出力先、/var/log/messages
「手順2-3」で実行したDockerコンテナのシェルを終了します。
# exit
J2EEアプリケーション配備済みDockerイメージの作成
docker commitコマンドを実行し、「手順2」で作成したDockerコンテナを元に、J2EEアプリケーション配備済みDockerイメージを作成します。
以下は、コンテナ名"j2eebare_c"のコンテナを元に、イメージ名"j2eemyapp:1.0"のJ2EEアプリケーション配備済みDockerイメージを作成する場合の例です。
# docker commit j2eebare_c j2eemyapp:1.0
コンテナ名"j2eebare_c"のコンテナを停止し、削除します。
# docker stop j2eebare_c # docker rm j2eebare_c