3.2. OpenShift Source-to-Image (S2I) プロセスでの JWS の使用
JWS for OpenShift イメージを実行および設定するには、アプリケーションテンプレートパラメーターおよび環境変数を使用して OpenShift S2I プロセスを使用します。
JWS for OpenShift イメージの S2I プロセスは以下のようになります。
configuration/Maven settings.xml ファイルがある場合は、新しいイメージの$HOME/.m2/に移動します。Maven および Maven の settings.xml ファイルの詳細は、Apache Maven Project の Web サイトを参照してください。
ソースリポジトリーに pom.xml ファイルがある場合、
$MAVEN_ARGS環境変数の内容を使用して Maven ビルドがトリガーされます。デフォルトでは、
packageのゴールはopenshiftプロファイルで使用されます。これには、テストをスキップする引数 (-DskipTests) および Red Hat GA リポジトリーを有効にするための引数 (-Dcom.redhat.xpaas.repo.redhatga) が含まれます。成功した Maven ビルドの結果は
/opt/webserver/webapps/にコピーされます。これには、$ARTIFACT_DIR環境変数によって指定されたソースディレクトリーからの WAR ファイルがすべて含まれます。$ARTIFACT_DIRのデフォルト値はtarget/ディレクトリーです。MAVEN_ARGS_APPEND環境変数を使用して Maven 引数を変更します。-
deployments/ソースディレクトリーのすべての WAR ファイルが/opt/webserver/webapps/にコピーされます。 -
configuration/ソースディレクトリーのすべてのファイルは、/opt/webserver/conf/にコピーされます (Maven の settings.xml ファイルを除く)。 lib/ソースディレクトリーのすべてのファイルは/opt/webserver/lib/にコピーされます。注記カスタムの Tomcat 設定ファイルを使用する場合は、通常の Tomcat インストールと同じファイル名を使用する必要があります。例:context.xml および server.xml
S2I プロセスを設定してカスタム Maven アーティファクトリポジトリーミラー を使用する方法は、「アーティファクトリポジトリーミラー」の項を参照してください。
3.2.1. 既存の Maven バイナリーを使用した OpenShift アプリケーションの JWS の作成 リンクのコピーリンクがクリップボードにコピーされました!
既存のアプリケーションは、oc start-build コマンドを使用して OpenShift にデプロイされます。
前提条件: OpenShift 用の JWS にデプロイする既存の .war、.ear、または .jar アプリケーション。
ローカルファイルシステムでディレクトリー構造を準備します。
アプリケーションがバイナリーに含まれていないコンテンツを含むソースディレクトリーを作成します(必要な場合は、「 Using the JWS for OpenShift Source-to-Image(S2I)プロセス」を参照)、
deployments/サブディレクトリーを作成します。$ mkdir -p <build_dir>/deploymentsバイナリー (
.war,.ear,.jar) をdeployments/にコピーします。$ cp /path/to/binary/<filenames_with_extensions> <build_dir>/deployments/注記ソースディレクトリーの
deployments/サブディレクトリーにあるアプリケーションアーカイブは、OpenShift 上にビルドされるイメージの$JWS_HOME/webapps/ディレクトリーにコピーされます。アプリケーションをデプロイするには、web アプリケーションデータを含むディレクトリー階層が正しく構成されている必要があります( .get_started/get_started.xmlを参照)。OpenShift インスタンスにログインします。
$ oc login <url>必要に応じて新規プロジェクトを作成します。
$ oc new-project <project-name>oc get is -n openshiftでアプリケーションに使用する OpenShift イメージストリームの JWS を特定します。$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' ' jboss-webserver30-tomcat7-openshift jboss-webserver30-tomcat8-openshift jboss-webserver31-tomcat7-openshift jboss-webserver31-tomcat8-openshift注記オプション
-n openshiftは使用するプロジェクトを指定します。oc get is -n openshiftはopenshiftプロジェクトからイメージストリームリソース (is) を取得 (get) します。イメージストリームおよびアプリケーション名を指定して、新規ビルド設定を作成します。
$ oc new-build --binary=true \ --image-stream=jboss-webserver31-tomcat8-openshift \ --name=<my-jws-on-openshift-app>OpenShift イメージビルドのバイナリー入力用に 以前作成されたソースディレクトリーを使用するように OpenShift に指示します。
$ oc start-build <my-jws-on-openshift-app> --from-dir=./<build_dir> --followイメージに基づいて新しい OpenShift アプリケーションを作成します。
$ oc new-app <my-jws-on-openshift-app>サービスを公開して、アプリケーションがユーザーにアクセスできるようにします。
# to check the name of the service to expose $ oc get svc -o name service/<my-jws-on-openshift-app> # to expose the service $ oc expose svc/my-jws-on-openshift-app route "my-jws-on-openshift-app" exposed公開されたルートのアドレスを取得します。
oc get routes --no-headers -o custom-columns='host:spec.host' my-jws-on-openshift-app- ブラウザーでアプリケーションにアクセスするには http://<address_of_exposed_route> / <my-war-ear-jar-filename-without-extension> を入力します。