2.5. 既存の Maven バイナリーを使用した OpenShift アプリケーションの JWS の作成
既存の Maven バイナリーを使用して、OpenShift アプリケーション用の JWS を作成できます。oc start-build コマンドを使用して、既存のアプリケーションを OpenShift にデプロイできます。
この手順では、tomcat-websocket-chat クイックスタートの例に基づいたサンプルアプリケーションを作成する方法を示します。
前提条件
JWS for OpenShift にデプロイするアプリケーション用の既存の
.war、.ear、または.jarファイルがあるか、アプリケーションをローカルでビルドしている。たとえば、
tomcat-websocket-chatアプリケーションをローカルでビルドするには、次の手順を実行します。ソースコードを複製するには、次のコマンドを入力します。
git clone https://github.com/jboss-openshift/openshift-quickstarts.git
$ git clone https://github.com/jboss-openshift/openshift-quickstarts.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat JBoss Middleware Maven リポジトリーの設定 で説明するように、Red HatJBoss Middleware Maven リポジトリーを設定します。
Maven リポジトリーの詳細については、Red Hat JBoss Enerprise Maven リポジトリー の Web ページを参照してください。
アプリケーションをビルドするには、以下のコマンドを入力します。
cd openshift-quickstarts/tomcat-websocket-chat/ mvn clean package
$ cd openshift-quickstarts/tomcat-websocket-chat/ $ mvn clean packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドにより、次の出力が生成されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
ローカルファイルシステムで、バイナリービルド用のソースディレクトリーと
deploymentsサブディレクトリーを作成します。たとえば、
tomcat-websocket-chatアプリケーション用に/ocpソースディレクトリーと/deploymentsサブディレクトリーを作成するには、次のコマンドを入力します。cd openshift-quickstarts/tomcat-websocket-chat/ mkdir -p ocp/deployments
$ cd openshift-quickstarts/tomcat-websocket-chat/ $ mkdir -p ocp/deploymentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ソースディレクトリーには、Maven バイナリーに含まれていないアプリケーションで必要なコンテンツを含めることができます。詳細は、OpenShift S2I プロセスの JWS を参照してください。
.war、.ear、または.jarバイナリーファイルをdeploymentsサブディレクトリーにコピーします。たとえば、サンプル tomcat-websocket-chat アプリケーションの
.warファイルをコピーするには、次のコマンドを入力します。cp target/websocket-chat.war ocp/deployments/
$ cp target/websocket-chat.war ocp/deployments/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記の例では、
target/websocket-chat.warが、コピーするバイナリーファイルへのパスです。ソースディレクトリーの
deploymentsサブディレクトリーにあるアプリケーションアーカイブは、OpenShift 上にビルドされているイメージの$JWS_HOME/tomcat/webapps/ディレクトリーにコピーされます。アプリケーションを正常にデプロイできるようにするには、Web アプリケーションデータを含むディレクトリー階層が正しく構造化されていることを確認する必要があります。詳細は、OpenShift S2I プロセスの JWS を参照してください。OpenShift インスタンスにログインします。
oc login <url>
$ oc login <url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて新規プロジェクトを作成します。
以下に例を示します。
oc new-project jws-bin-demo
$ oc new-project jws-bin-demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記前の例では、
jws-bin-demoが作成するプロジェクトの名前です。アプリケーションに使用する OpenShift イメージストリームの JWS を特定します。
oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' 'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、次のタイプの出力を生成します。
jboss-webserver56-openjdk8-tomcat9-openshift-ubi8
jboss-webserver56-openjdk8-tomcat9-openshift-ubi8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記-n openshiftオプションは、使用するプロジェクトを指定します。oc get is -n openshiftコマンドは、openshiftプロジェクトからイメージストリームリソースを取得します。新しいビルド設定を作成し、イメージストリームとアプリケーション名を指定していることを確認します。
たとえば、サンプル tomcat-websocket-chat アプリケーションの新しいビルド設定を作成するには、次のようにします。
oc new-build --binary=true \ --image-stream=jboss-webserver56-openjdk8-tomcat9-openshift-ubi8:latest\*
$ oc new-build --binary=true \ --image-stream=jboss-webserver56-openjdk8-tomcat9-openshift-ubi8:latest\* --name=jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記の例では、
jws-wsch-appが JWS for OpenShift アプリケーションの名前です。上記のコマンドは、次のタイプの出力を生成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow バイナリービルドを開始します。
以下に例を示します。
oc start-build jws-wsch-app --from-dir=./ocp --follow
$ oc start-build jws-wsch-app --from-dir=./ocp --followCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記の例では、
jws-wsch-appは JWS for OpenShift アプリケーションの名前であり、ocpはソースディレクトリーの名前です。上記のコマンドは、OpenShift イメージビルドのバイナリー入力用に作成したソースディレクトリーを使用するよう OpenShift に指示します。
上記のコマンドは、次のタイプの出力を生成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージに基づいて新しい OpenShift アプリケーションを作成します。
以下に例を示します。
oc new-app jws-wsch-app
$ oc new-app jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記の例では、
jws-wsch-appが JWS for OpenShift アプリケーションの名前です。上記のコマンドは、次のタイプの出力を生成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを公開して、アプリケーションがユーザーにアクセスできるようにします。
たとえば、サンプル
jws-wsch-appアプリケーションにアクセスできるようにするには、次の手順を実行します。公開するサービスの名前を確認します。
oc get svc -o name
$ oc get svc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、次のタイプの出力を生成します。
service/jws-wsch-app
service/jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを公開するには、以下を実行します。
oc expose svc/jws-wsch-app
$ oc expose svc/jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、次のタイプの出力を生成します。
route "jws-wsch-app" exposed
route "jws-wsch-app" exposedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
公開されたルートのアドレスを取得します。
oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-app
oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow Web ブラウザーを開き、URL を入力してアプリケーションにアクセスします。
たとえば、サンプル
jws-wsch-appアプリケーションにアクセスするには、次の URL を入力します。\http://<address_of_exposed_route>/websocket-chat注記前の例で、
<address_of_exposed_route>をデプロイメントに適した値に置き換えます。