2.5. 既存の Maven バイナリーを使用した OpenShift アプリケーションの JWS の作成


既存の Maven バイナリーを使用して、OpenShift アプリケーション用の JWS を作成できます。oc start-build コマンドを使用して、既存のアプリケーションを OpenShift にデプロイできます。

注記

この手順では、tomcat-websocket-chat クイックスタートの例に基づいたサンプルアプリケーションを作成する方法を示します。

前提条件

  • JWS for OpenShift にデプロイするアプリケーション用の既存の .war.ear、または .jar ファイルがあるか、アプリケーションをローカルでビルドしている。

    たとえば、tomcat-websocket-chat アプリケーションをローカルでビルドするには、次の手順を実行します。

    1. ソースコードを複製するには、次のコマンドを入力します。

      $ git clone https://github.com/jboss-openshift/openshift-quickstarts.git
    2. Red Hat JBoss Middleware Maven リポジトリーの設定 で説明するように、Red HatJBoss Middleware Maven リポジトリーを設定します。

      Maven リポジトリーの詳細については、Red Hat JBoss Enerprise Maven リポジトリー の Web ページを参照してください。

    3. アプリケーションをビルドするには、以下のコマンドを入力します。

      $ cd openshift-quickstarts/tomcat-websocket-chat/
      $ mvn clean package

      上記のコマンドにより、次の出力が生成されます。

      [INFO] Scanning for projects...
      [INFO]
      [INFO] ------------------------------------------------------------------------
      [INFO] Building Tomcat websocket example 1.2.0.Final
      [INFO] ------------------------------------------------------------------------
      ...
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 01:28 min
      [INFO] Finished at: 2018-01-16T15:59:16+10:00
      [INFO] Final Memory: 19M/271M
      [INFO] ------------------------------------------------------------------------

手順

  1. ローカルファイルシステムで、バイナリービルド用のソースディレクトリーと deployments サブディレクトリーを作成します。

    たとえば、tomcat-websocket-chat アプリケーション用に /ocp ソースディレクトリーと /deployments サブディレクトリーを作成するには、次のコマンドを入力します。

    $ cd openshift-quickstarts/tomcat-websocket-chat/
    $ mkdir -p ocp/deployments
    注記

    ソースディレクトリーには、Maven バイナリーに含まれていないアプリケーションで必要なコンテンツを含めることができます。詳細は、OpenShift S2I プロセスの JWS を参照してください。

  2. .war.ear、または .jar バイナリーファイルを deployments サブディレクトリーにコピーします。

    たとえば、サンプル tomcat-websocket-chat アプリケーションの .war ファイルをコピーするには、次のコマンドを入力します。

    $ cp target/websocket-chat.war ocp/deployments/
    注記

    上記の例では、target/websocket-chat.war が、コピーするバイナリーファイルへのパスです。

    ソースディレクトリーの deployments サブディレクトリーにあるアプリケーションアーカイブは、OpenShift 上にビルドされているイメージの $JWS_HOME/tomcat/webapps/ ディレクトリーにコピーされます。アプリケーションを正常にデプロイできるようにするには、Web アプリケーションデータを含むディレクトリー階層が正しく構造化されていることを確認する必要があります。詳細は、OpenShift S2I プロセスの JWS を参照してください。

  3. OpenShift インスタンスにログインします。

    $ oc login <url>
  4. 必要に応じて新規プロジェクトを作成します。

    以下に例を示します。

    $ oc new-project jws-bin-demo
    注記

    前の例では、jws-bin-demo が作成するプロジェクトの名前です。

  5. アプリケーションに使用する OpenShift イメージストリームの JWS を特定します。

    $ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '

    上記のコマンドは、次のタイプの出力を生成します。

    jboss-webserver56-openjdk8-tomcat9-openshift-ubi8
    注記

    -n openshift オプションは、使用するプロジェクトを指定します。oc get is -n openshift コマンドは、openshift プロジェクトからイメージストリームリソースを取得します。

  6. 新しいビルド設定を作成し、イメージストリームとアプリケーション名を指定していることを確認します。

    たとえば、サンプル tomcat-websocket-chat アプリケーションの新しいビルド設定を作成するには、次のようにします。

    $ oc new-build --binary=true \
     --image-stream=jboss-webserver56-openjdk8-tomcat9-openshift-ubi8:latest\*
     --name=jws-wsch-app
    注記

    上記の例では、jws-wsch-app が JWS for OpenShift アプリケーションの名前です。

    上記のコマンドは、次のタイプの出力を生成します。

    --> Found image 8c3b85b (4 weeks old) in image stream "openshift/jboss-webserver56-tomcat9-openshift" under tag "latest" for "jboss-webserver56"
    
        JBoss Web Server 5.6
        --------------------
        Platform for building and running web applications on JBoss Web Server 5.6 - Tomcat v9
    
        Tags: builder, java, tomcat9
    
        * A source build using binary input will be created
          * The resulting image will be pushed to image stream "jws-wsch-app:latest"
          * A binary build was created, use 'start-build --from-dir' to trigger a new build
    
    --> Creating resources with label build=jws-wsch-app ...
        imagestream "jws-wsch-app" created
        buildconfig "jws-wsch-app" created
    --> Success
  7. バイナリービルドを開始します。

    以下に例を示します。

    $ oc start-build jws-wsch-app --from-dir=./ocp --follow
    注記

    上記の例では、jws-wsch-app は JWS for OpenShift アプリケーションの名前であり、ocp はソースディレクトリーの名前です。

    上記のコマンドは、OpenShift イメージビルドのバイナリー入力用に作成したソースディレクトリーを使用するよう OpenShift に指示します。

    上記のコマンドは、次のタイプの出力を生成します。

    Uploading directory "ocp" as binary input for the build ...
    build "jws-wsch-app-1" started
    Receiving source from STDIN as archive ...
    
    Copying all deployments war artifacts from /home/jboss/source/deployments directory into `/opt/jws-5.6/tomcat/webapps` for later deployment...
    '/home/jboss/source/deployments/websocket-chat.war' -> '/opt/jws-5.6/tomcat/webapps/websocket-chat.war'
    
    Pushing image 172.30.202.111:5000/jws-bin-demo/jws-wsch-app:latest ...
    Pushed 0/7 layers, 7% complete
    Pushed 1/7 layers, 14% complete
    Pushed 2/7 layers, 29% complete
    Pushed 3/7 layers, 49% complete
    Pushed 4/7 layers, 62% complete
    Pushed 5/7 layers, 92% complete
    Pushed 6/7 layers, 100% complete
    Pushed 7/7 layers, 100% complete
    Push successful
  8. イメージに基づいて新しい OpenShift アプリケーションを作成します。

    以下に例を示します。

    $ oc new-app jws-wsch-app
    注記

    上記の例では、jws-wsch-app が JWS for OpenShift アプリケーションの名前です。

    上記のコマンドは、次のタイプの出力を生成します。

    --> Found image e5f3a6b (About a minute old) in image stream "jws-bin-demo/jws-wsch-app" under tag "latest" for "jws-wsch-app"
    
        JBoss Web Server 5.6
        --------------------
        Platform for building and running web applications on JBoss Web Server 5.6 - Tomcat v9
    
        Tags: builder, java, tomcat9
    
        * This image will be deployed in deployment config "jws-wsch-app"
        * Ports 8080/tcp, 8443/tcp, 8778/tcp will be load balanced by service "jws-wsch-app"
          * Other containers can access this service through the hostname "jws-wsch-app"
    
    --> Creating resources ...
        deploymentconfig "jws-wsch-app" created
        service "jws-wsch-app" created
    --> Success
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose svc/jws-wsch-app'
        Run 'oc status' to view your app.
  9. サービスを公開して、アプリケーションがユーザーにアクセスできるようにします。

    たとえば、サンプル jws-wsch-app アプリケーションにアクセスできるようにするには、次の手順を実行します。

    1. 公開するサービスの名前を確認します。

      $ oc get svc -o name

      上記のコマンドは、次のタイプの出力を生成します。

      service/jws-wsch-app
    2. サービスを公開するには、以下を実行します。

      $ oc expose svc/jws-wsch-app

      上記のコマンドは、次のタイプの出力を生成します。

      route "jws-wsch-app" exposed
  10. 公開されたルートのアドレスを取得します。

    oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-app
  11. Web ブラウザーを開き、URL を入力してアプリケーションにアクセスします。

    たとえば、サンプル jws-wsch-app アプリケーションにアクセスするには、次の URL を入力します。

    \http://<address_of_exposed_route>/websocket-chat

    注記

    前の例で、<address_of_exposed_route> をデプロイメントに適した値に置き換えます。

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.