C.5. ジェネレーター
Fabric8 Maven プラグインは、特定の種類のアプリケーションに対して自動的にイメージをビルドする機能がある、generator コンポーネントを提供します。Fuse on OpenShift では、以下のジェネレータータイプがサポートされます。
ジェネレーターフレームワークは、アプリケーションプロジェクトの特性に応じて、必要なビルドタイプを自動検出し、適切なジェネレーターコンポーネントを呼び出します。
Fabric8 Maven プラグインのオープンソースコミュニティーバージョンは、追加のジェネレータータイプを提供しますが、これらのタイプは Fuse on OpenShift 製品ではサポートされません。
C.5.1. ゼロ設定
ジェネレーターには設定が必要ありません。ジェネレーターはデフォルトで有効になり、Fabric8 Maven プラグインが呼び出されると自動的にデフォルト設定で実行されます。しかし、必要な場合はジェネレーターの設定を簡単にカスタマイズできます。
C.5.2. ベースイメージを指定するモード
Fuse on OpenShift では、アプリケーションビルドのベースイメージは Java イメージ (Spring Boot アプリケーションの場合) または Karaf イメージ (Karaf アプリケーションの場合) のいずれかになります。Fabric8 Maven プラグインは、ベースイメージの指定に以下のモードをサポートします。
istag
(デフォルト): image stream は、OpenShift イメージストリームからタグ付けされたイメージを選択して動作します。この場合、ベースイメージは以下の形式で指定されます。
<namespace>/<image-stream-name>:<tag>
<namespace>
は、イメージストリームが定義される OpenShift プロジェクトの名前に置き換えます (通常はopenshift
)。<image-stream-name>
はイメージストリームの名前に置き換えます。<tag>
はストリームの特定のイメージを識別します (またはストリームの最新イメージを追跡します)。docker
docker モードは、イメージレジストリーから特定の Docker 形式イメージを選択して動作します。ベースイメージは直接リモートレジストリーから取得されるため、イメージストリームは必要ありません。この場合、ベースイメージは以下の形式で指定されます。
[<registry-location-url>/]<image-namespace>/<image-name>:<tag>
イメージ指定子は 任意で リモートイメージレジストリーの URL である
<registry-location-url>
で始まり、イメージ namespace<image-namespace>
、イメージ名<image-name>
、およびタグ<tag>
が続きます。
オープンソースコミュニティーバージョンの fabric8-maven-plugin
のデフォルト操作は Red Hat の製品化バージョンとは異なります。たとえば、コミュニティーバージョンのデフォルトモードは docker
です。
C.5.2.1. istag モードのデフォルト値
デフォルトである istag
モードが選択されている場合、Fabric8 Maven プラグインは以下のデフォルトイメージ指定子を使用して Fuse イメージを選択します (形式は <namespace>/<image-stream-name>:<tag>
です)。
fuse7/fuse-eap-openshift:1.8 fuse7/fuse-java-openshift:1.8 fuse7/fuse-karaf-openshift:1.8
Fuse イメージストリームでは、個別のイメージに 1.0-1
や 1.0-2
などのビルド番号がタグ付けされます。常に最新のイメージを追跡するよう、1.0
タグが設定されます。
C.5.2.2. docker モードのデフォルト値
docker
モードが選択され、registry.redhat.io
にアクセスするよう OpenShift 環境が設定されていることを仮定する場合、Fabric8 Maven プラグインは以下のデフォルトイメージ指定子を使用して Fuse イメージを選択します (形式は <image-namespace>/<image-name>:<tag>
です)。
fuse7/fuse-eap-openshift:1.8 fuse7/fuse-java-openshift:1.8 fuse7/fuse-karaf-openshift:1.8
C.5.2.3. Spring Boot アプリケーションのモード設定
Spring Boot アプリケーションのビルドに使用されるモード設定とベースイメージの場所をカスタマイズするには、以下の形式で configuration
要素をアプリケーションの pom.xml
ファイルにある fabric8-maven-plugin
設定に追加します。
例
<configuration> <generator> <config> <spring-boot> <fromMode>{istag|docker}</fromMode> <from>{image locations}</from> </spring-boot> </config> </generator> </configuration>
C.5.2.4. Karaf アプリケーションのモード設定
Karaf アプリケーションのビルドに使用されるモード設定とベースイメージの場所をカスタマイズするには、以下の形式で configuration
要素をアプリケーションの pom.xml
ファイルにある fabric8-maven-plugin
設定に追加します。
例
<configuration> <generator> <config> <karaf> <fromMode>{istag|docker}</fromMode> <from>{image locations}</from> </karaf> </config> </generator> </configuration>
C.5.2.5. コマンドラインを使用したジェネレーターモードの指定
pom.xml
ファイルで直接モードの設定をカスタマイズする代わりに、以下のプロパティー設定をコマンドライン呼び出しに追加し、モードの設定を直接 mvn
コマンドに渡すことができます。
例
//build from Docker-formatted image directly, registry location, image name or tag are subject to change if desirable -Dfabric8.generator.fromMode=docker -Dfabric8.generator.from=<custom-registry-location-url>/<image-namespace>/<image-name>:<tag> //to use ImageStream from different namespace -Dfabric8.generator.fromMode=istag //istag is default -Dfabric8.generator.from=<namespace>/<image-stream-name>:<tag>
C.5.3. Spring Boot
Spring Boot ジェネレーターは、pom.xml
ファイルで spring-boot-maven-plugin
を見つけるとアクティベートされます。生成されたコンテナーポートは application.properties
ファイルの server.port
プロパティーのから読み取られ、見つからない場合はデフォルトで 8080
になります。
このジェネレーターは一般的なジェネレーターオプションの他に、以下のオプションで設定することができます。
要素 | 説明 | デフォルト |
---|---|---|
assemblyRef | アセンブリーへの参照が指定されている場合は、含めるアーティファクトの検出を行わずに使用されます。 | |
targetDir | 検出されたアーティファクトが配置される生成されたイメージ内のディレクトリー。ベースイメージも変更された場合のみ変更します。 |
|
jolokiaPort | ベースイメージによって公開される Jolokia エージェントのポート。Jolokia ポートを公開したくない場合はこれを 0 に設定します。 | 8778 |
mainClass |
呼び出すメインクラス。指定のない場合は次のようにジェネレーターがメインクラスを検索します。最初に、fat-jar を検出するためにチェックが実行されます。次に、 | |
webPort | サービスとして公開するポート。Web アプリケーションのポートであるはずです。ポートを公開しない場合はこれを 0 に設定します。 | 8080 |
color | 設定されている場合、Spring Boot のコンソール出力で色を強制的に使用します。 |
ジェネレーターは、application.properties
から読み取られた管理またはサーバーポートのいずれかを示す Kubernetes の liveness および readiness probe を追加します。server.ssl.key-store
プロパティーが application.properties
に設定されている場合、probe は https
を使用するよう自動的に設定されます。
C.5.4. Karaf
Karaf ジェネレーターは、pom.xml
ファイルで karaf-maven-plugin
プラグインを見つけるとアクティベートされます。このジェネレーターは、一般的なジェネレーターオプションに加え、以下のオプションで設定が可能です。
要素 | 説明 | デフォルト |
---|---|---|
baseDir | 検出されたアーティファクトが配置される生成されたイメージ内のディレクトリー。ベースイメージも変更された場合のみ変更します。 |
|
jolokiaPort | ベースイメージによって公開される Jolokia エージェントのポート。Jolokia ポートを公開したくない場合はこれを 0 に設定します。 | 8778 |
mainClass |
呼び出すメインクラス。指定のない場合は次のようにジェネレーターがメインクラスを検索します。最初に、fat-jar を検出するためにチェックが実行されます。次に、 | |
user |
ファイルを追加するユーザーやグループ。ベースイメージにユーザーがすでに存在している必要があります。通常の形式は |
|
webPort | サービスとして公開するポート。Web アプリケーションのポートであるはずです。ポートを公開しない場合はこれを 0 に設定します。 | 8080 |