6.6. OpenShift での Spring Boot での Dekorate の使用

以下の例は、方法を示しています。

  1. アプリケーションで openshift-spring-stater を使用できます。
  2. Dekorate は、アプリケーションのタイプを自動的に識別し、OpenShift サービスルートおよびプローブを随時設定できます。
  3. Maven がアプリケーションをコンパイルした後に、source-to-image ビルドをトリガーするようにアプリケーションを設定できます。
  4. 前提条件

    • Spring Boot および Dekorate を使用するよう設定された Maven ベースのアプリケーションプロジェクト
    • @SpringBootApplication アノテーションがプロジェクトのソースファイルに追加されました。
    • Java JDK 8 または JDK 11 がインストールされている。
    • Maven がインストールされている。
    • oc コマンドラインツールがインストールされている
    • oc コマンドラインツールを使用して OpenShift クラスターにログインしている。

手順

  1. Dekorate Spring Starter は、アプリケーションプロジェクトの pom.xml ファイルの依存関係として追加します。

    pom.xml

    <project>
      ...
      <dependencies>
         ...
        <dependency>
          <groupId>io.dekorate</groupId>
          <artifactId>openshift-spring-starter</artifactId>
        </dependency>
        ...
      </dependencies>
    ...
    <project>

  2. Main.java クラスファイルに @OpenShiftApplication アノテーションを付けます。これにより、アプリケーションをコンパイルする際に Source-to-Image ビルドを起動できます。

    /src/main/java/io/dekorate/example/sbonopenshift/Main.java

    package io.dekorate.example.sbonopenshift;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @OpenShiftApplication
    @SpringBootApplication
    public class Main {
    
      public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
      }
    
    }

  3. Rest コントローラーをアプリケーションに追加します。

    /src/main/java/io/dekorate/example/sbonopenshift/Controller.java

    package io.dekorate.example.sbonopenshift;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class Controller {
    
      @RequestMapping("/")
      public String hello() {
        return "Hello world";
      }
    }

    Dekorate Spring スターターによって提供される Spring アプリケーションプロセッサーは Rest コントローラーを自動的に検出し、アプリケーションタイプを Web アプリケーションとして識別します。Web アプリケーションの場合、Dekorate は OpenShift アプリケーションテンプレートを自動的に生成し、以下を設定します。

    • アプリケーションの OpenShift Service ルート
    • アプリケーションのルートでサービスを公開します。
    • Liveness および Readiness プローブの設定
  4. アプリケーションをビルドしてデプロイします。Maven がアプリケーションをコンパイルした後に source-to-image ビルドを自動的に実行するには、-Ddekorate.deploy=true プロパティーを含めます。
mvn clean install -Ddekorate.deploy=true