Red Hat JBoss Web Server for OpenShift
Red Hat JBoss Web Server for OpenShift のインストールおよび使用
概要
Red Hat JBoss Web Server ドキュメントへのフィードバックの提供 リンクのコピーリンクがクリップボードにコピーされました!
エラーを報告したり、ドキュメントの改善を提案したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- 次のリンクをクリックして チケットを作成 します。
- Summary に課題の簡単な説明を入力します。
- Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
- 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 設定に使用または保存する必要がありません。
手順
- Red Hat カスタマーポータルの手順に従って、レジストリーサービスアカウントを使用して認証トークンを作成 してください。
- トークンの Token Information ページで、OpenShift Secret タブをクリックし、トークンの OpenShift シークレットを含む YAML ファイルをダウンロードします。
ダウンロードした YAML ファイルを使用して、OpenShift プロジェクトの認証トークンシークレットを作成します。
以下に例を示します。
oc create -f 1234567_myserviceaccount-secret.yaml
oc create -f 1234567_myserviceaccount-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift プロジェクトのシークレットを設定するには、次のコマンドを入力します。
oc secrets link default 1234567-myserviceaccount-pull-secret --for=pull oc secrets link builder 1234567-myserviceaccount-pull-secret --for=pull
oc secrets link default 1234567-myserviceaccount-pull-secret --for=pull oc secrets link builder 1234567-myserviceaccount-pull-secret --for=pullCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記前の例で、
1234567-myserviceaccountを前の手順で作成したシークレットの名前に置き換えます。
2.2. JBoss Web Server イメージストリームとテンプレートのインポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Container Registry から、Red Hat JBoss Web Server for OpenShift イメージストリームおよびテンプレートをインポートできます。JDK 用の最新の JBoss Web Server イメージストリームとテンプレートを、OpenShift プロジェクトの namespace にインポートする必要があります。
手順
- カスタマーポータルの認証情報を使用して、Red Hat Container Registry にログインします。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。
使用している RHEL バージョンに応じて、以下のいずれかの手順を実行します。
OpenJDK 8
OpenJDK 8 を使用している場合は、次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、UBI8 JDK 8 イメージストリーム、
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8、およびコマンドで指定されたすべてのテンプレートをインポートします。OpenJDK 11
OpenJDK 11 を使用している場合は、次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、UBI8 JDK 11 イメージストリーム、
jboss-webserver57-openjdk11-tomcat9-openshift-ubi8、およびコマンドで指定されたすべてのテンプレートをインポートします。OpenJDK 17
OpenJDK 11 を使用している場合は、次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、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
$ oc -n openshift import-image \ jboss-webserver58-openjdk8-tomcat9-openshift-ubi8:5.8.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow コア JBoss Web Server 6.0 tomcat 10 を OpenJDK 17 OpenShift イメージで更新するには、次のコマンドを入力します。
oc -n openshift import-image \ jboss-webserver58-openjdk11-tomcat9-openshift-ubi8:5.8.1
$ oc -n openshift import-image \ jboss-webserver58-openjdk11-tomcat9-openshift-ubi8:5.8.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow コア JBoss Web Server 6.0 tomcat 10 を OpenJDK 17 OpenShift イメージで更新するには、次のコマンドを入力します。
oc -n openshift import-image \ jboss-webserver58-openjdk17-tomcat9-openshift-ubi8:5.8.1
$ oc -n openshift import-image \ jboss-webserver58-openjdk17-tomcat9-openshift-ubi8:5.8.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
インポートする各イメージの最後にある 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.xmlやserver.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アプリケーションをローカルでビルドするには、次の手順を実行します。ソースコードを複製するには、次のコマンドを入力します。
git clone https://github.com/web-servers/tomcat-websocket-chat-quickstart.git
$ git clone https://github.com/web-servers/tomcat-websocket-chat-quickstart.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 tomcat-websocket-chat-quickstart/tomcat-websocket-chat/ mvn clean package
$ cd tomcat-websocket-chat-quickstart/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 tomcat-websocket-chat-quickstart/tomcat-websocket-chat/ mkdir -p ocp/deployments
$ cd tomcat-websocket-chat-quickstart/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-webserver58-openjdk8-tomcat9-openshift-ubi8
jboss-webserver58-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-webserver58-openjdk8-tomcat9-openshift-ubi8:latest \ --name=jws-wsch-app
$ oc new-build --binary=true \ --image-stream=jboss-webserver58-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>をデプロイメントに適した値に置き換えます。
2.6. ソースコードから JWS for OpenShift アプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
ソースコードから JWS for OpenShift アプリケーションを作成できます。
ソースコードから新規 OpenShift アプリケーションを作成する方法は、OpenShift.com - ソースコードからのアプリケーションの作成 を参照してください。
前提条件
- アプリケーションデータが正しく構造化されている。詳細は、OpenShift S2I プロセスの JWS を参照してください。
手順
OpenShift インスタンスにログインします。
oc login <url>
$ oc login <url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて新規プロジェクトを作成します。
oc new-project <project-name>
$ oc new-project <project-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記前の例で、
<project-name>を作成するプロジェクトの名前に置き換えます。アプリケーションに使用する 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-webserver58-openjdk8-tomcat9-openshift-ubi8
jboss-webserver58-openjdk8-tomcat9-openshift-ubi8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記-n openshiftオプションは、使用するプロジェクトを指定します。oc get is -n openshiftコマンドは、openshiftプロジェクトからイメージストリームリソースを取得します。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>
$ oc new-app \ <source_code_location> \ --image-stream=jboss-webserver58-openjdk8-tomcat9-openshift-ubi8:latest \ --name=<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
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
$ 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-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、ソースコードをイメージに追加し、ソースコードをコンパイルします。上記のコマンドは、ビルド設定とサービスも作成します。
アプリケーションを公開するには、次の手順を実行します。
公開するサービスの名前を確認するには、以下を行います。
oc get svc -o name
$ oc get svc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、次のタイプの出力を生成します。
service/<openshift_application_name>
service/<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを公開するには、以下を実行します。
oc expose svc/<openshift_application_name>
$ oc expose svc/<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、次のタイプの出力を生成します。
route "<openshift_application_name>" exposed
route "<openshift_application_name>" exposedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
公開されたルートのアドレスを取得するには、以下を実行します。
oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>
oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 ディレクトリーに追加できます。
手順
Docker でイメージを開始します。
docker run --network host -i -t -p 8080:8080 ImageURL
docker run --network host -i -t -p 8080:8080 ImageURLCopy to Clipboard Copied! Toggle word wrap Toggle overflow CONTAINER IDを検索します。docker ps | grep <ImageName>
docker ps | grep <ImageName>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ライブラリーを
tomcat/lib/ディレクトリーにコピーします。docker cp <yourLibrary> <CONTAINER ID>:/opt/jws-5.8/tomcat/lib/
docker cp <yourLibrary> <CONTAINER ID>:/opt/jws-5.8/tomcat/lib/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規イメージに変更をコミットします。
docker commit <CONTAINER ID> <NEW IMAGE NAME>
docker commit <CONTAINER ID> <NEW IMAGE NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規イメージタグを作成します。
docker tag <NEW IMAGE NAME>:latest <NEW IMAGE REGISTRY URL>:<TAG>
docker tag <NEW IMAGE NAME>:latest <NEW IMAGE REGISTRY URL>:<TAG>Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをレジストリーにプッシュします。
docker push <NEW IMAGE REGISTRY URL>
docker push <NEW IMAGE REGISTRY URL>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第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 環境変数をアプリケーションの新しいビルド設定に追加できます。
手順
以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記のコマンドは、リポジトリーマネージャーがすでにデプロイされており、
http://10.0.0.1:8080/repository/internal/でアクセスできることを前提としています。
A.1.2. 既存のビルド設定に内部 Maven リポジトリーを使用する リンクのコピーリンクがクリップボードにコピーされました!
oc env コマンドでビルド設定の名前を指定することにより、アプリケーションの既存のビルド設定に MAVEN_MIRROR_URL 環境変数を追加できます。
手順
MAVEN_MIRROR_URL変数を必要とするビルド設定を特定します。oc get bc -o name
$ oc get bc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドは、次のタイプの出力を生成します。
buildconfig/jws
buildconfig/jwsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記前の例では、jws はビルド設定の名前です。
MAVEN_MIRROR_URL環境変数をbuildconfig/jwsに追加します。oc set env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/"
$ oc set env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/" buildconfig "jws" updatedCopy to Clipboard Copied! Toggle word wrap Toggle overflow ビルド設定が更新されたことを確認します。
oc set env bc/jws --list buildconfigs jws
$ oc set env bc/jws --list # buildconfigs jws MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
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 イメージの有効な環境変数を示します。
| 変数名 | 表示名 | 説明 | 値の例 |
|---|---|---|---|
| ARTIFACT_DIR | 該当なし |
このディレクトリーからの | 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 コンテナーのリクエスト処理パイプラインに挿入することができます。
| 変数名 | 説明 | 値の例 | デフォルト値 |
|---|---|---|---|
| ENABLE_ACCESS_LOG | Access Log Valve を有効にして、標準出力チャンネルへのアクセスメッセージをログに記録します。 | true | false |
付録C OpenShift ログの確認 リンクのコピーリンクがクリップボードにコピーされました!
oc logs コマンドを使用して、OpenShift ログ、または実行中のコンテナーについてコンソールが提供するログを表示できます。
手順
以下のコマンドを入力します。
oc logs -f <pod_name> <container_name>
$ oc logs -f <pod_name> <container_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記のコマンドで、
<pod_name>と<container_name>をデプロイに適した値に置き換えます。アクセスログは
/opt/jws-6.0/tomcat/logs/ディレクトリーに保存されます。