第8章 Red Hat OpenShift Container Platform での SpringBoot ビジネスアプリケーションの実行

Red Hat OpenShift Container Platform で Red Hat Process Automation Manager SpringBoot ビジネスアプリケーションを実行するには、イミュータブルイメージを作成し、このイメージを Red Hat OpenShift Container Platform 環境にプッシュします。

必要に応じて、Business Central Monitoring を使用して、アプリケーションでのビジネスプロセスの実行を監視することもできます。

前提条件

  • Red Hat Process Automation Manager Spring Boot ビジネスアプリケーションを開発済みである。アプリケーションの作成方法は、2章ビジネスアプリケーションの作成 を参照してください。
  • 必要に応じて、アプリケーションに Spring セキュリティーを設定している。Spring セキュリティーの設定方法は、4章Red Hat Process Automation Manager での Spring Security を参照してください。
  • ビジネスアプリケーションに必要な追加の Spring 設定を完了している。ビジネスアプリケーションの Spring 設定に関する方法については、5章Red Hat Process Automation Manager Spring Boot の設定 を参照してください。
  • ビジネスアプリケーションに、JAR ファイルを 1 つ作成している。SpringBoot ビジネスアプリケーションに単一の JAR ファイルを作成する方法は、6章自己完結型 Red Hat Process Automation Manager Spring Boot JAR ファイルの作成 を参照してください。
  • oc コマンドを使用して Red Hat OpenShift Container Platform 環境にログインしており、必要なプロジェクトがアクティブである。
  • Business Central Monitoring を使用する場合は、Operator を使用して Business Central Monitoring がインストールされている。同じ namespace を使用して Business Central Monitoring とビジネスアプリケーションをデプロイします。

    重要

    コントローラーの起動ストラテジーを使用するように Business Central Monitoring を設定する必要があります。Business Central Monitoring でコントローラーストラテジーを有効にするには、Operator 設定の Console タブで、KIE_SERVER_CONTROLLER_OPENSHIFT_ENABLED 環境変数を追加し、false に設定します。

手順

  1. ビジネスアプリケーションプロジェクトディレクトリー外部で、以下のサブディレクトリーを含めて ocp-image ディレクトリーを作成します。

    ocp-image
    |--/root
      |--/opt
        |-- /spring-service
  2. ビジネスアプリケーションの単一の JAR ファイルを root/opt/spring-service サブディレクトリーにコピーします。以下に例を示します。

    cd ../business-application-service
    cp target/business-application-service-1.0-SNAPSHOT.jar ../ocp-image/root/opt/spring-service/
  3. ocp-image ディレクトリーで、以下の内容を含む Dockerfile ファイルを作成します。

    FROM registry.access.redhat.com/ubi8/openjdk-11:latest
    COPY root /
    EXPOSE 8090
    WORKDIR /opt/spring-service/
    CMD ["sh","-c", "java ${JAVA_OPTIONS} -Dorg.kie.server.mode=PRODUCTION -jar /opt/spring-service/<FILENAME>.jar"]

    <FILENAME>.jar は、ビジネスアプリケーションの単一の JAR ファイルの名前に置き換えます。

    または、Business Central Monitoring との通信を設定する場合は、Dockerfile に以下のコンテンツを使用します。

    FROM registry.access.redhat.com/ubi8/openjdk-11:latest
    COPY root /
    EXPOSE 8090
    WORKDIR /opt/spring-service/
    CMD ["sh","-c", "java ${JAVA_OPTIONS} -Dorg.kie.server.location=${KIESERVER_LOCATION} -Dorg.kie.server.controller=${KIESERVER_CONTROLLERS} -Dorg.kie.server.controller.user=${KIE_SERVER_CONTROLLER_USER} -Dorg.kie.server.controller.pwd=${KIE_SERVER_CONTROLLER_PWD} -Dorg.kie.server.mode=PRODUCTION -jar /opt/spring-service/<FILENAME>.jar"]

    <FILENAME>.jar は、ビジネスアプリケーションの単一の JAR ファイルの名前に置き換えます。

  4. 初期イメージをビルドし、Red Hat OpenShift Container Platform 環境にデプロイするには、以下の手順を実行します。

    1. イメージをビルドするには、ocp-image ディレクトリーで以下のコマンドを実行します。

      oc new-build --binary --strategy=docker --name openshift-kie-springboot
      oc start-build openshift-kie-springboot --from-dir=. --follow

      オプション L: openshift-kie-springboot は、これらのコマンドと後続の全コマンドのカスタムアプリケーションの名前に置き換えます。

    2. Red Hat OpenShift Container Platform 環境でイメージをデプロイするには、以下のコマンドを実行します。

      oc new-app openshift-kie-springboot

      または、イメージをデプロイして Business Central Monitoring と通信するように設定するには、以下のコマンドを実行します。

      oc new-app openshift-kie-springboot -e KIESERVER_LOCATION=http://<LOCATION>:<PORT>/rest/server -e KIESERVER_CONTROLLERS=ws://<BC-HOSTNAME>:<BC-PORT>/websocket/controller -e KIE_SERVER_CONTROLLER_USER=USER -e KIE_SERVER_CONTROLLER_PWD=PASSWORD

      このコマンドでは、以下の値を置き換えてください。

      • <location>: サービスにアクセスするための完全修飾ホスト名を指定します。Business Central Monitoring はサービスにアクセスしてプロセス情報を取得し、このホスト名を持つサービスの URL を表示します。
      • <PORT>: サービスにアクセスするためのポート (例: 8090)
      • <BC-HOSTNAME>: Business Central Monitoring インスタンスにアクセスするためのホスト名アプリケーションが Business Central Monitoring インスタンスと同じプロジェクト/namespace にデプロイされている場合は、Business Central Monitoring のサービス名 (myapp-rhpamcentrmon など) を使用します。それ以外の場合は、Business Central Monitoring インスタンスのルートの完全修飾クラス名を使用できます。
      • <BC-PORT>: 8080 などの Business Central Monitoring インスタンスのポート
      • <user>: Business Central Monitoring インスタンスに設定したユーザーのユーザー名
      • <password>: Business Central Monitoring インスタンスに設定したユーザーのパスワード

        注記

        この設定では、サービスにセキュアでない HTTP 通信を使用します。Spring Boot ビジネスアプリケーションを有効な SSL 証明書で設定する場合は、http:https: に置き換えてセキュアな HTTPS 通信を使用できます。Spring Boot での SSL の設定に関する詳細は、Spring Boot の ドキュメント を参照してください。

        注記

        Business Central Monitoring からプロセス情報を表示する場合は、Business Central Monitoring にログインしたユーザーが、同じパスワードを使用してサービスで認証できるようにする必要があります。

    3. オプション: イメージのルートを公開するには、以下のコマンドを実行します。

      oc expose service/openshift-kie-springboot --port=8090
  5. 新しいバージョンの Red Hat Process Automation Manager または Spring Boot の JAR ファイルをビルドした場合など、すでにイメージをビルドし、更新する必要がある場合には、ocp-image ディレクトリーで以下のコマンドを実行します。

    oc start-build openshift-kie-springboot --from-dir=. --follow