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/web-servers/tomcat-websocket-chat-quickstart.git
$ git clone https://github.com/web-servers/tomcat-websocket-chat-quickstart.git
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat JBoss Middleware Maven リポジトリーの設定 で説明するように、Red Hat JBoss Middleware Maven リポジトリーを設定します。
Maven リポジトリーの詳細は、Red Hat JBoss Enerprise Maven リポジトリー の Web ページを参照してください。
アプリケーションをビルドするには、以下のコマンドを入力します。
cd tomcat-websocket-chat-quickstart/tomcat-websocket-chat/ mvn clean package
$ cd tomcat-websocket-chat-quickstart/tomcat-websocket-chat/ $ mvn clean package
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドにより、次の出力が生成されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
ローカルファイルシステムで、バイナリービルド用のソースディレクトリーと
deployments
サブディレクトリーを作成します。たとえば、
tomcat-websocket-chat
アプリケーション用に/ocp
ソースディレクトリーと/deployments
サブディレクトリーを作成するには、次のコマンドを入力します。cd tomcat-websocket-chat-quickstart/tomcat-websocket-chat/ mkdir -p ocp/deployments
$ cd tomcat-websocket-chat-quickstart/tomcat-websocket-chat/ $ mkdir -p ocp/deployments
Copy 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-demo
Copy 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-webserver60-openjdk17-tomcat10-openshift-ubi8
jboss-webserver60-openjdk17-tomcat10-openshift-ubi8
Copy 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-webserver60-openjdk17-tomcat10-openshift-ubi8:latest \ --name=jws-wsch-app
$ oc new-build --binary=true \ --image-stream=jboss-webserver60-openjdk17-tomcat10-openshift-ubi8:latest \ --name=jws-wsch-app
Copy 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 --follow
Copy 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-app
Copy 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 name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、次のタイプの出力を生成します。
service/jws-wsch-app
service/jws-wsch-app
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを公開するには、以下を実行します。
oc expose svc/jws-wsch-app
$ oc expose svc/jws-wsch-app
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、次のタイプの出力を生成します。
route "jws-wsch-app" exposed
route "jws-wsch-app" exposed
Copy 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-app
Copy 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>
をデプロイメントに適した値に置き換えます。