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