Red Hat JBoss Web Server for OpenShift


Red Hat JBoss Web Server 5.8

Red Hat JBoss Web Server for OpenShift のインストールおよび使用

Red Hat Customer Content Services

概要

Red Hat JBoss Web Server for OpenShift の使用ガイド

Red Hat JBoss Web Server ドキュメントへのフィードバックの提供

エラーを報告したり、ドキュメントの改善を提案したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。

手順

  1. 次のリンクをクリックして チケットを作成 します。
  2. Summary に課題の簡単な説明を入力します。
  3. Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
  4. Create をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。

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

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 Red Hat JBoss Web Server for OpenShift

Red Hat JBoss Web Server (JWS) 6.0 の Apache Tomcat 10 コンポーネントは、Red Hat OpenShift 用に設計されたコンテナー化されたイメージとして利用できます。このイメージを使用して、複数のハイブリッドクラウド環境にデプロイする Java Web アプリケーションをビルド、スケーリング、テストできます。

1.1. Red Hat JBoss Web Server と JWS for OpenShift の相違点

JWS for OpenShift イメージは、Red Hat JBoss Web Server の通常のリリースとは異なります。

JWS for OpenShift イメージと標準の JBoss Web Server デプロイメントとの次の違いを考慮してください。

  • JWS for OpenShift イメージでは、/opt/jws-6.0/ ディレクトリーが JWS_HOME の場所になります。
  • JWS for OpenShift デプロイメントでは、すべてのロードバランシングは、JBoss Core Services の mod_cluster コネクターまたは mod_jk コネクターではなく、OpenShift ルーターによって処理されます。

1.2. OpenShift イメージバージョンの互換性とサポート

OpenShift イメージは、Red Hat OpenShift Container Platform のお客様が使用している最も一般的なテクノロジーの組み合わせを表すさまざまなオペレーティングシステムのバージョン、設定、およびインターフェイスポイントでテストされています。

重要

新しいアプリケーションをデプロイする場合は、OpenShift イメージとアプリケーションテンプレートに JWS の 5.7 バージョンを使用する必要があります。

JWS for OpenShift イメージおよびアプリケーションテンプレートの 5.6 バージョンは非推奨となり、更新を受信しなくなりました。

1.3. JBoss Web Server でサポートされるアーキテクチャー

JBoss Web Server は以下のアーキテクチャーをサポートします。

  • x86_64 (AMD64)
  • OpenShift 環境の IBM Z (s390x)
  • OpenShift 環境の IBM Power (ppc64le)

JBoss Web Server image for OpenJDK 17 は、サポートされるすべてのアーキテクチャーで使用できます。イメージの詳細は、Red Hat Container Catalog を参照してください。

1.4. Red Hat コンテナーイメージのヘルスチェック

すべての OpenShift Container Platform イメージには、正常性評価が関連付けられています。Red Hat JBoss Web Server の正常性評価は、認定されたコンテナーイメージ のページに移動し、JBoss Web Server を検索して 6.0 バージョンを選択することで確認できます。

また、OpenShift コンテナーでヘルスチェックを実行して、コンテナーの稼働状況と準備状況をテストすることもできます。

第2章 Red Hat JBoss Web Server for OpenShift の使用を開始する

Red Hat コンテナーレジストリーから、最新の Red Hat JBoss Web Server for OpenShift イメージストリームおよびテンプレートをインポートできます。その後、既存の Maven バイナリーまたはソースコードを使用して、JWS for OpenShift Source-to-Image (S2I) プロセスで OpenShift アプリケーション用の JBoss Web Server を作成できます。

このドキュメントの手順に従う前に、前提条件として OpenShift クラスターがすでにインストールされ、設定されていることを確認してください。OpenShift クラスターのインストールと設定の詳細については、OpenShift Container Platform の インストール ガイドを参照してください。

注記

JWS for OpenShift アプリケーションテンプレートは、Tomcat 9 に対して配布されます。

2.1. Red Hat Container Registry の認証トークンの設定

Red Hat JBoss Web Server for OpenShift イメージをインポートして使用する前に、Red Hat Container Registry にアクセスするための認証トークンが設定されていることを確認する必要があります。

レジストリーサービスアカウントを使用して、認証トークンを作成できます。こうすると、お持ちの Red Hat アカウントのユーザー名やパスワードを OpenShift 設定に使用または保存する必要がありません。

手順

  1. Red Hat カスタマーポータルの手順に従って、レジストリーサービスアカウントを使用して認証トークンを作成 してください。
  2. トークンの Token Information ページで、OpenShift Secret タブをクリックし、トークンの OpenShift シークレットを含む YAML ファイルをダウンロードします。
  3. ダウンロードした YAML ファイルを使用して、OpenShift プロジェクトの認証トークンシークレットを作成します。

    以下に例を示します。

    oc create -f 1234567_myserviceaccount-secret.yaml
    Copy to Clipboard Toggle word wrap
  4. OpenShift プロジェクトのシークレットを設定するには、次のコマンドを入力します。

    oc secrets link default 1234567-myserviceaccount-pull-secret --for=pull
    oc secrets link builder 1234567-myserviceaccount-pull-secret --for=pull
    Copy to Clipboard Toggle word wrap
    注記

    前の例で、1234567-myserviceaccount を前の手順で作成したシークレットの名前に置き換えます。

2.2. JBoss Web Server イメージストリームとテンプレートのインポート

Red Hat Container Registry から、Red Hat JBoss Web Server for OpenShift イメージストリームおよびテンプレートをインポートできます。JDK 用の最新の JBoss Web Server イメージストリームとテンプレートを、OpenShift プロジェクトの namespace にインポートする必要があります。

手順

  1. カスタマーポータルの認証情報を使用して、Red Hat Container Registry にログインします。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。
  2. 使用している RHEL バージョンに応じて、以下のいずれかの手順を実行します。

    • OpenJDK 8

      OpenJDK 8 を使用している場合は、次のコマンドを入力します。

      for resource in \
      jws58-openjdk8-tomcat9-ubi8-basic-s2i.json \
      jws58-openjdk8-tomcat9-ubi8-https-s2i.json \
      jws58-openjdk8-tomcat9-ubi8-image-stream.json
      do
      oc replace -n openshift --force -f \
      https://raw.githubusercontent.com/jboss-container-images/jboss-webserver-5-openshift-image/jws58el8-v5.8.1/templates/${resource}
      done
      Copy to Clipboard Toggle word wrap

      上記のコマンドは、UBI8 JDK 8 イメージストリーム、jboss-webserver57-openjdk8-tomcat9-openshift-ubi8、およびコマンドで指定されたすべてのテンプレートをインポートします。

    • OpenJDK 11

      OpenJDK 11 を使用している場合は、次のコマンドを入力します。

      for resource in \
      jws58-openjdk11-tomcat9-ubi8-basic-s2i.json \
      jws58-openjdk11-tomcat9-ubi8-https-s2i.json \
      jws58-openjdk11-tomcat9-ubi8-image-stream.json
      do
      oc replace -n openshift --force -f \
      https://raw.githubusercontent.com/jboss-container-images/jboss-webserver-5-openshift-image/jws58el8-v5.8.1/templates/${resource}
      done
      Copy to Clipboard Toggle word wrap

      上記のコマンドは、UBI8 JDK 11 イメージストリーム、jboss-webserver57-openjdk11-tomcat9-openshift-ubi8、およびコマンドで指定されたすべてのテンプレートをインポートします。

    • OpenJDK 17

      OpenJDK 11 を使用している場合は、次のコマンドを入力します。

      for resource in \
      jws58-openjdk17-tomcat9-ubi8-basic-s2i.json \
      jws58-openjdk17-tomcat9-ubi8-https-s2i.json \
      jws58-openjdk17-tomcat9-ubi8-image-stream.json
      do
      oc replace -n openshift --force -f \
      https://raw.githubusercontent.com/jboss-container-images/jboss-webserver-5-openshift-image/jws58el8-v5.8.1/templates/${resource}
      done
      Copy to Clipboard Toggle word wrap

      上記のコマンドは、UBI8 JDK 11 イメージストリーム、jboss-webserver57-openjdk11-tomcat9-openshift-ubi8、およびコマンドで指定されたすべてのテンプレートをインポートします。

注記

上記のコマンドでは、インポートする JBoss Web Server 5.8 の最新リリースを指定するようにしてください(例:5.8.1)。

2.3. 最新の JWS for OpenShift イメージのインポート

import-image コマンドを使用して、利用可能な最新の JWS for OpenShift イメージをインポートできます。Red Hat は、OpenJDK 8 および OpenJDK 11 用の個別の JWS for OpenShift イメージを提供します。

手順

  • 使用している RHEL バージョンに応じて、以下のいずれかの手順を実行します。

    • コア JBoss Web Server 6.0 tomcat 10 を OpenJDK 17 OpenShift イメージで更新するには、次のコマンドを入力します。

      $ oc -n openshift import-image \
        jboss-webserver58-openjdk8-tomcat9-openshift-ubi8:5.8.1
      Copy to Clipboard Toggle word wrap
    • コア JBoss Web Server 6.0 tomcat 10 を OpenJDK 17 OpenShift イメージで更新するには、次のコマンドを入力します。

      $ oc -n openshift import-image \
        jboss-webserver58-openjdk11-tomcat9-openshift-ubi8:5.8.1
      Copy to Clipboard Toggle word wrap
    • コア JBoss Web Server 6.0 tomcat 10 を OpenJDK 17 OpenShift イメージで更新するには、次のコマンドを入力します。

      $ oc -n openshift import-image \
        jboss-webserver58-openjdk17-tomcat9-openshift-ubi8:5.8.1
      Copy to Clipboard Toggle word wrap
注記

インポートする各イメージの最後にある 6.0.0 タグは、イメージストリーム に設定されるストリームバージョンを参照します。

2.4. OpenShift S2I プロセスの JWS

OpenShift の source-to-image (S2I) プロセスを使用して、アプリケーションテンプレートのパラメーターと環境変数を使用することにより、OpenShift イメージ用の JWS を実行および設定できます。

JWS for OpenShift イメージの S2I プロセスは以下のようになります。

  • configuration ソースディレクトリーに Maven の settings.xml ファイルが含まれている場合、settings.xml ファイルは新しいイメージの $HOME/.m2/ ディレクトリーに移動されます。
  • ソースリポジトリーに pom.xml ファイルが含まれている場合、$MAVEN_ARGS 環境変数の内容を使用して Maven ビルドがトリガーされます。

    デフォルトでは、package ゴールは、テストをスキップするための -DskipTests 引数と、Red Hat GA リポジトリーを有効にするための -Dcom.redhat.xpaas.repo.redhatga 引数を含む openshift プロファイルで使用されます。

  • 成功した Maven ビルドの結果は、/opt/jws-6.0/tomcat/webapps ディレクトリーにコピーされます。これには、$ARTIFACT_DIR 環境変数によって指定されたソースディレクトリーからの WAR ファイルがすべて含まれます。$ARTIFACT_DIR のデフォルト値は target/ ディレクトリーです。

    $MAVEN_ARGS_APPEND 環境変数を使用して Maven 引数を変更できます。

  • deployments ソースディレクトリーのすべての WAR ファイルは、/opt/jws-6.0/tomcat/webapps ディレクトリーにコピーされます。
  • Maven settings.xml ファイルを除く、configuration ソースディレクトリー内のすべてのファイルが /opt/jws-6.0/tomcat/conf/ ディレクトリーにコピーされます。
  • lib ソースディレクトリー内のすべてのファイルが、/opt/jws-6.0/tomcat/lib/ ディレクトリーにコピーされます。

    注記

    カスタム Tomcat 設定ファイルを使用する場合は、通常の Tomcat インストールで使用されるのと同じファイル名 (context.xmlserver.xml など) を使用します。

カスタム Maven アーティファクトリーポジトリミラーを使用するように S2I プロセスを設定する方法は、OpenShift の Maven アーティファクトリーポジトリミラーと JWS を参照してください。

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/web-servers/tomcat-websocket-chat-quickstart.git
      Copy to Clipboard Toggle word wrap
    2. Red Hat JBoss Middleware Maven リポジトリーの設定 で説明するように、Red HatJBoss Middleware Maven リポジトリーを設定します。

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

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

      $ cd tomcat-websocket-chat-quickstart/tomcat-websocket-chat/
      $ mvn clean package
      Copy to Clipboard Toggle word wrap

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

      [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] ------------------------------------------------------------------------
      Copy to Clipboard Toggle word wrap

手順

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

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

    $ cd tomcat-websocket-chat-quickstart/tomcat-websocket-chat/
    $ mkdir -p ocp/deployments
    Copy to Clipboard Toggle word wrap
    注記

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

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

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

    $ cp target/websocket-chat.war ocp/deployments/
    Copy to Clipboard Toggle word wrap
    注記

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

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

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

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

    以下に例を示します。

    $ oc new-project jws-bin-demo
    Copy to Clipboard Toggle word wrap
    注記

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

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

    $ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
    Copy to Clipboard Toggle word wrap

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

    jboss-webserver58-openjdk8-tomcat9-openshift-ubi8
    Copy to Clipboard Toggle word wrap
    注記

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

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

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

    $ oc new-build --binary=true \
     --image-stream=jboss-webserver58-openjdk8-tomcat9-openshift-ubi8:latest \
     --name=jws-wsch-app
    Copy to Clipboard Toggle word wrap
    注記

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

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

    --> Found image 8c3b85b (4 weeks old) in image stream "openshift/jboss-webserver58-tomcat9-openshift" under tag "latest" for "jboss-webserver58"
    
        JBoss Web Server 5.8
        --------------------
        Platform for building and running web applications on JBoss Web Server 5.8 - 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
    Copy to Clipboard Toggle word wrap
  7. バイナリービルドを開始します。

    以下に例を示します。

    $ oc start-build jws-wsch-app --from-dir=./ocp --follow
    Copy to Clipboard Toggle word wrap
    注記

    上記の例では、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.8/tomcat/webapps` for later deployment...
    '/home/jboss/source/deployments/websocket-chat.war' -> '/opt/jws-5.8/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
    Copy to Clipboard Toggle word wrap
  8. イメージに基づいて新しい OpenShift アプリケーションを作成します。

    以下に例を示します。

    $ oc new-app jws-wsch-app
    Copy to Clipboard Toggle word wrap
    注記

    上記の例では、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.8
        --------------------
        Platform for building and running web applications on JBoss Web Server 5.8 - 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.
    Copy to Clipboard Toggle word wrap
  9. サービスを公開して、アプリケーションがユーザーにアクセスできるようにします。

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

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

      $ oc get svc -o name
      Copy to Clipboard Toggle word wrap

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

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

      $ oc expose svc/jws-wsch-app
      Copy to Clipboard Toggle word wrap

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

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

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

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

    http://<address_of_exposed_route>/websocket-chat

    注記

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

2.6. ソースコードから JWS for OpenShift アプリケーションの作成

ソースコードから JWS for OpenShift アプリケーションを作成できます。

ソースコードから新規 OpenShift アプリケーションを作成する方法は、OpenShift.com - ソースコードからのアプリケーションの作成 を参照してください。

前提条件

手順

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

    $ oc login <url>
    Copy to Clipboard Toggle word wrap
  2. 必要に応じて新規プロジェクトを作成します。

    $ oc new-project <project-name>
    Copy to Clipboard Toggle word wrap
    注記

    前の例で、<project-name> を作成するプロジェクトの名前に置き換えます。

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

    $ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
    Copy to Clipboard Toggle word wrap

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

    jboss-webserver58-openjdk8-tomcat9-openshift-ubi8
    Copy to Clipboard Toggle word wrap
    注記

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

  4. Red Hat JBoss Web Server for OpenShift イメージを使用して、ソースコードから新しい OpenShift アプリケーションを作成します。

    $ oc new-app \
     <source_code_location> \
     --image-stream=jboss-webserver58-openjdk8-tomcat9-openshift-ubi8:latest \
     --name=<openshift_application_name>
    Copy to Clipboard Toggle word wrap

    以下に例を示します。

    $ oc new-app \
     https://github.com/web-servers/tomcat-websocket-chat-quickstart.git#main \
     --image-stream=jboss-webserver58-openjdk8-tomcat9-openshift-ubi8:latest \
     --context-dir='tomcat-websocket-chat' \
     --name=jws-wsch-app
    Copy to Clipboard Toggle word wrap

    上記のコマンドは、ソースコードをイメージに追加し、ソースコードをコンパイルします。上記のコマンドは、ビルド設定とサービスも作成します。

  5. アプリケーションを公開するには、次の手順を実行します。

    1. 公開するサービスの名前を確認するには、以下を行います。

      $ oc get svc -o name
      Copy to Clipboard Toggle word wrap

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

      service/<openshift_application_name>
      Copy to Clipboard Toggle word wrap
    2. サービスを公開するには、以下を実行します。

      $ oc expose svc/<openshift_application_name>
      Copy to Clipboard Toggle word wrap

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

      route "<openshift_application_name>" exposed
      Copy to Clipboard Toggle word wrap
  6. 公開されたルートのアドレスを取得するには、以下を実行します。

    oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>
    Copy to Clipboard Toggle word wrap
  7. Web ブラウザーを開き、次の URL を入力してアプリケーションにアクセスします。

    http://<address_of_exposed_route>/<java_application_name>

    注記

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

2.7. tomcat/lib/ ディレクトリーに追加の jar ファイルの追加

Docker を使用して、追加の Java アーカイブ (JAR) ファイルを tomcat/lib ディレクトリーに追加できます。

手順

  1. Docker でイメージを開始します。

    docker run --network host -i -t -p 8080:8080 ImageURL
    Copy to Clipboard Toggle word wrap
  2. CONTAINER ID を検索します。

     docker ps | grep <ImageName>
    Copy to Clipboard Toggle word wrap
  3. ライブラリーを tomcat/lib/ ディレクトリーにコピーします。

    docker cp <yourLibrary> <CONTAINER ID>:/opt/jws-5.8/tomcat/lib/
    Copy to Clipboard Toggle word wrap
  4. 新規イメージに変更をコミットします。

    docker commit <CONTAINER ID> <NEW IMAGE NAME>
    Copy to Clipboard Toggle word wrap
  5. 新規イメージタグを作成します。

    docker tag <NEW IMAGE NAME>:latest <NEW IMAGE REGISTRY URL>:<TAG>
    Copy to Clipboard Toggle word wrap
  6. イメージをレジストリーにプッシュします。

    docker push <NEW IMAGE REGISTRY URL>
    Copy to Clipboard Toggle word wrap

第3章 Red Hat OpenShift 向け Red Hat JBoss Web Server メータリングラベル

メータリングラベルを Red Hat JBoss Web Server Pod に追加し、OpenShift Metering Operator を使用して Red Hat サブスクリプションの詳細を確認できます。

注記
  • メータリングラベルは、Operator またはテンプレートがデプロイおよび管理する Pod に追加しないでください。
  • OpenShift Container Platform バージョン 4.8 以前では、Metering Operator を使用してラベルを Pod に適用できます。バージョン 4.9 以降は、Metering Operator は直接置き換えなしには利用できなくなりました。

Red Hat JBoss Web Server では、以下のメータリングラベルを使用できます。

  • com.company: Red_Hat
  • rht.prod_name: Red_Hat_Runtimes
  • rht.prod_ver: 2024-Q4
  • rht.comp: JBoss_Web_Server
  • rht.comp_ver: 2.5.10
  • rht.subcomp: Tomcat 9
  • rht.subcomp_t: application

付録A S2I スクリプトと Maven

Red Hat JBoss Web Server for OpenShift イメージには、S2I スクリプト と Maven が含まれています。

A.1. OpenShift の Maven アーティファクトリーポジトリミラーと JWS

Maven リポジトリーには、プロジェクト Java アーカイブ (JAR) ファイル、ライブラリー JAR ファイル、プラグイン、またはその他のプロジェクト固有のアーティファクトなど、ビルドアーティファクトと依存関係が保持されます。Maven リポジトリーは、source-to-image (S2I) ビルドの実行中にアーティファクトをダウンロードできる場所も定義します。Maven Central Repository の使用に加えて、ローカルのカスタムリポジトリー (mirror) もデプロイします。

ローカルミラーには、次の利点があります。

  • 地理的に近く、高速な同期ミラーを使用できる
  • リポジトリーコンテンツの制御が強化される
  • パブリックサーバーやリポジトリーに依存することなく、さまざまなチーム (開発者および継続的インテグレーション (CI)) 間でアーティファクトを共有できる
  • ビルド時間が改善される

Maven リポジトリーマネージャー はミラーへのローカルキャッシュとして機能できます。リポジトリーマネージャーがすでにデプロイされていて、指定された URL の場所で外部からアクセスできる場合、S2I ビルドはこのリポジトリーを使用できます。MAVEN_MIRROR_URL 環境変数をアプリケーションのビルド設定に追加することで、内部 Maven リポジトリーを使用できます。

A.1.1. 新しいビルド設定に内部 Maven リポジトリーを使用する

oc new-app コマンドまたは oc new-build コマンドで --build-env オプションを指定することにより、MAVEN_MIRROR_URL 環境変数をアプリケーションの新しいビルド設定に追加できます。

手順

  1. 以下のコマンドを入力します。

    $ oc new-app \
     https://github.com/web-servers/tomcat-websocket-chat-quickstart.git#main \
     --image-stream=jboss-webserver58-openjdk8-tomcat9-openshift-ubi8:latest \
     --context-dir='tomcat-websocket-chat' \
     --build-env MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/ \
     --name=jws-wsch-app
    Copy to Clipboard Toggle word wrap
    注記

    上記のコマンドは、リポジトリーマネージャーがすでにデプロイされており、http://10.0.0.1:8080/repository/internal/ でアクセスできることを前提としています。

A.1.2. 既存のビルド設定に内部 Maven リポジトリーを使用する

oc env コマンドでビルド設定の名前を指定することにより、アプリケーションの既存のビルド設定に MAVEN_MIRROR_URL 環境変数を追加できます。

手順

  1. MAVEN_MIRROR_URL 変数を必要とするビルド設定を特定します。

    $ oc get bc -o name
    Copy to Clipboard Toggle word wrap

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

    buildconfig/jws
    Copy to Clipboard Toggle word wrap
    注記

    前の例では、jws はビルド設定の名前です。

  2. MAVEN_MIRROR_URL 環境変数を buildconfig/jws に追加します。

    $ oc set env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/"
    
    buildconfig "jws" updated
    Copy to Clipboard Toggle word wrap
  3. ビルド設定が更新されたことを確認します。

    $ oc set env bc/jws --list
    
    # buildconfigs jws
    MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/
    Copy to Clipboard Toggle word wrap
  4. oc start-build を使用したアプリケーションの新規ビルドのスケジュール
注記

アプリケーションのビルドプロセス中に、Maven の依存関係は、デフォルトのパブリックリポジトリーからではなく、リポジトリーマネージャーからダウンロードされます。ビルドプロセスが完了すると、ビルドプロセス中に取得および使用されるすべての依存関係がミラーに含まれます。

A.2. Red Hat JBoss Web Server for OpenShift イメージに含まれるスクリプト

Red Hat JBoss Web Server for OpenShift イメージには、Catalina を実行し、Maven を使用して .war パッケージを作成およびデプロイするためのスクリプトが含まれています。

run
Catalina (Tomcat) の実行
assemble
Maven を使用して Web アプリケーションソースをビルドし、.war ファイルを作成して、.war ファイルを $JWS_HOME/tomcat/webapps ディレクトリーに移動します。

A.3. OpenShift データソースの JWS

JWS for OpenShift は、次の 3 種類のデータソースを提供します。

デフォルトの内部データソース
PostgreSQL、MySQL、および MongoDB のデータソースは、Red Hat レジストリーを介してデフォルトで OpenShift で利用できます。これらのデータソースでは、イメージストリーム用に追加の環境ファイルを設定する必要はありません。データベースを検出してデータソースとして使用できるようにするには、DB_SERVICE_PREFIX_MAPPING 環境変数を OpenShift サービスの名前に設定します。
その他の内部データソース
これらのデータソースは OpenShift で実行されますが、デフォルトでは Red Hat レジストリーからは利用できません。OpenShift シークレットに追加される環境ファイルは、他の内部データソースの設定を提供します。
外部データソース
これらのデータソースは OpenShift では実行されません。OpenShift シークレットに追加される環境ファイルは、外部データソースの設定を提供します。

ENV_FILES プロパティー

プロジェクトの OpenShift シークレットにデータソースの環境変数を追加できます。ENV_FILES プロパティーを使用して、テンプレート内でこれらの環境ファイルを呼び出すことができます。

DB_SERVICE_PREFIX_MAPPING 環境変数

データソースは、特定の環境変数の値に基づいて自動的に作成されます。DB_SERVICE_PREFIX_MAPPING 環境変数は、データソースの JNDI マッピングを定義します。

DB_SERVICE_PREFIX_MAPPING 変数に許可される値は、POOLNAME-DATABASETYPE=PREFIX トリプレットのコンマ区切りリストです。各トリプレットは、次の値で設定されます。

  • POOLNAME はデータソースの pool-name として使用されます。
  • DATABASETYPE は使用するデータベースドライバーです。
  • PREFIX は、データソースを設定するために使用される環境変数の名前に使用される接頭辞です。

起動スクリプトは、イメージの起動時に実行される個別のデータソースを DB_SERVICE_PREFIX_MAPPING 環境変数に定義された各 POOLNAME-DATABASETYPE=PREFIX トリプレットに対して作成します。

A.4. OpenShift と互換性のある環境変数の JWS

source-to-image (S2I) build コマンドを使用して環境変数を含めることにより、ビルド設定を変更できます。詳細は、Maven アーティファクトリーポジトリミラーおよび JWS for OpenShift を参照してください。

以下の表に、Red Hat JBoss Web Server for OpenShift イメージの有効な環境変数を示します。

Expand
変数名表示名説明値の例

ARTIFACT_DIR

該当なし

このディレクトリーからの .war.ear、および .jar ファイルが deployments ディレクトリーにコピーされます。

target

APPLICATION_NAME

アプリケーション名

アプリケーションの名前

jws-app

CONTEXT_DIR

コンテキストディレクトリー

ビルドする Git プロジェクト内のパス。root プロジェクトディレクトリーの場合は空です。

tomcat-websocket-chat

GITHUB_WEBHOOK_SECRET

Github Webhook Secret

GitHub トリガーシークレット

[a-zA-Z0-9]{8} からの式

GENERIC_WEBHOOK_SECRET

Generic Webhook Secret

汎用ビルドトリガーシークレット

[a-zA-Z0-9]{8} からの式

HOSTNAME_HTTP

カスタム HTTP ルートのホスト名

http サービスルートのカスタムホスト名。デフォルトホスト名の場合は空白のままにします。

<application-name>-<project>.<default-domain-suffix>

HOSTNAME_HTTPS

カスタム HTTPS ルートのホスト名

https サービスルートのカスタムホスト名。デフォルトホスト名の場合は空白のままにします。

<application-name>-<project>.<default-domain-suffix>

IMAGE_STREAM_NAMESPACE

イメージストリーム名前空間

Red Hat ミドルウェアイメージの ImageStreams がインストールされている名前空間

openshift

JWS_HTTPS_SECRET

シークレット名

証明書ファイルが含まれるシークレットの名前

jws-app-secret

JWS_HTTPS_CERTIFICATE

証明書名

シークレット内の証明書ファイルの名前

server.crt

JWS_HTTPS_CERTIFICATE_KEY

証明書キー名

シークレット内の証明書キーファイルの名前

server.key

JWS_HTTPS_CERTIFICATE_PASSWORD

証明書のパスワード

証明書のパスワード

P5ssw0rd

SOURCE_REPOSITORY_URL

Git リポジトリー URL

アプリケーションの Git ソース URI

https://github.com/web-servers/tomcat-websocket-chat-quickstart.git

SOURCE_REPOSITORY_REFERENCE

Git リファレンス

Git ブランチ/タグ参照

1.2

IMAGE_STREAM_NAMESPACE

イメージストリーム名前空間

Red Hat ミドルウェアイメージの ImageStreams がインストールされている名前空間

openshift

MAVEN_MIRROR_URL

Maven ミラー URL

設定する Maven ミラー/リポジトリーマネージャーの URL

http://10.0.0.1:8080/repository/internal/

付録B OpenShift 用の JWS 上のバルブ

以下の環境変数を定義して、バルブコンポーネントを関連付けられた Catalina コンテナーのリクエスト処理パイプラインに挿入することができます。

Expand
変数名説明値の例デフォルト値

ENABLE_ACCESS_LOG

Access Log Valve を有効にして、標準出力チャンネルへのアクセスメッセージをログに記録します。

true

false

付録C OpenShift ログの確認

oc logs コマンドを使用して、OpenShift ログ、または実行中のコンテナーについてコンソールが提供するログを表示できます。

手順

  • 以下のコマンドを入力します。

    $ oc logs -f <pod_name> <container_name>
    Copy to Clipboard Toggle word wrap
    注記

    上記のコマンドで、<pod_name><container_name> をデプロイに適した値に置き換えます。

    アクセスログは /opt/jws-6.0/tomcat/logs/ ディレクトリーに保存されます。

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat