D.5. ジェネレーター
Fabric8 Maven プラグインは、特定の種類のアプリケーションに対して自動的にイメージをビルドする機能がある、generator コンポーネントを提供します。Fuse on OpenShift では、以下のジェネレータータイプがサポートされます。
ジェネレーターフレームワークは、アプリケーションプロジェクトの特性に応じて、必要なビルドタイプを自動検出し、適切なジェネレーターコンポーネントを呼び出します。
Fabric8 Maven プラグインのオープンソースコミュニティーバージョンは、追加のジェネレータータイプを提供しますが、これらのタイプは Fuse on OpenShift 製品ではサポートされません。
D.5.1. ゼロ設定 リンクのコピーリンクがクリップボードにコピーされました!
ジェネレーターには設定が必要ありません。ジェネレーターはデフォルトで有効になり、Fabric8 Maven プラグインが呼び出されると自動的にデフォルト設定で実行されます。しかし、必要な場合はジェネレーターの設定を簡単にカスタマイズできます。
D.5.2. ベースイメージを指定するモード リンクのコピーリンクがクリップボードにコピーされました!
Fuse on OpenShift では、アプリケーションビルドのベースイメージは Java イメージ (Spring Boot アプリケーションの場合) または Karaf イメージ (Karaf アプリケーションの場合) のいずれかになります。Fabric8 Maven プラグインは、ベースイメージの指定に以下のモードをサポートします。
istag(デフォルト): image stream は、OpenShift イメージストリームからタグ付けされたイメージを選択して動作します。この場合、ベースイメージは以下の形式で指定されます。
<namespace>/<image-stream-name>:<tag>
<namespace>/<image-stream-name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <namespace>は、イメージストリームが定義される OpenShift プロジェクトの名前に置き換えます (通常はopenshift)。<image-stream-name>はイメージストリームの名前に置き換えます。<tag>はストリームの特定のイメージを識別します (またはストリームの最新イメージを追跡します)。dockerdocker モードは、イメージレジストリーから特定の Docker 形式イメージを選択して動作します。ベースイメージは直接リモートレジストリーから取得されるため、イメージストリームは必要ありません。この場合、ベースイメージは以下の形式で指定されます。
[<registry-location-url>/]<image-namespace>/<image-name>:<tag>
[<registry-location-url>/]<image-namespace>/<image-name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージ指定子は 任意で リモートイメージレジストリーの URL である
<registry-location-url>で始まり、イメージ namespace<image-namespace>、イメージ名<image-name>、およびタグ<tag>が続きます。
オープンソースコミュニティーバージョンの openshift-maven-plugin のデフォルト操作は Red Hat の製品化バージョンとは異なります。たとえば、コミュニティーバージョンのデフォルトモードは docker です。
D.5.2.1. istag モードのデフォルト値 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトである istag モードが選択されている場合、Fabric8 Maven プラグインは以下のデフォルトイメージ指定子を使用して Fuse イメージを選択します (形式は <namespace>/<image-stream-name>:<tag> です)。
fuse7/fuse-eap-openshift:1.9 fuse7/fuse-java-openshift:1.9 fuse7/fuse-karaf-openshift:1.9
fuse7/fuse-eap-openshift:1.9
fuse7/fuse-java-openshift:1.9
fuse7/fuse-karaf-openshift:1.9
Fuse イメージストリームでは、個別のイメージに 1.0-1 や 1.0-2 などのビルド番号がタグ付けされます。常に最新のイメージを追跡するよう、1.0 タグが設定されます。
D.5.2.2. docker モードのデフォルト値 リンクのコピーリンクがクリップボードにコピーされました!
docker モードが選択され、registry.redhat.io にアクセスするよう OpenShift 環境が設定されていることを仮定する場合、Fabric8 Maven プラグインは以下のデフォルトイメージ指定子を使用して Fuse イメージを選択します (形式は <image-namespace>/<image-name>:<tag> です)。
fuse7/fuse-eap-openshift:1.9 fuse7/fuse-java-openshift:1.9 fuse7/fuse-karaf-openshift:1.9
fuse7/fuse-eap-openshift:1.9
fuse7/fuse-java-openshift:1.9
fuse7/fuse-karaf-openshift:1.9
D.5.2.3. Spring Boot アプリケーションのモード設定 リンクのコピーリンクがクリップボードにコピーされました!
Spring Boot アプリケーションのビルドに使用されるモード設定とベースイメージの場所をカスタマイズするには、以下の形式で configuration 要素をアプリケーションの pom.xml ファイルにある fabric8-maven-plugin 設定に追加します。
例
D.5.2.4. Karaf アプリケーションのモード設定 リンクのコピーリンクがクリップボードにコピーされました!
Karaf アプリケーションのビルドに使用されるモード設定とベースイメージの場所をカスタマイズするには、以下の形式で configuration 要素をアプリケーションの pom.xml ファイルにある fabric8-maven-plugin 設定に追加します。
例
D.5.2.5. コマンドラインを使用したジェネレーターモードの指定 リンクのコピーリンクがクリップボードにコピーされました!
pom.xml ファイルで直接モードの設定をカスタマイズする代わりに、以下のプロパティー設定をコマンドライン呼び出しに追加し、モードの設定を直接 mvn コマンドに渡すことができます。
例
D.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 を使用するよう自動的に設定されます。
D.5.4. Karaf リンクのコピーリンクがクリップボードにコピーされました!
Karaf ジェネレーターは、pom.xml ファイルで karaf-maven-plugin プラグインを見つけるとアクティベートされます。このジェネレーターは、一般的なジェネレーターオプションに加え、以下のオプションで設定が可能です。
| 要素 | 説明 | デフォルト |
|---|---|---|
| baseDir | 検出されたアーティファクトが配置される生成されたイメージ内のディレクトリー。ベースイメージも変更された場合のみ変更します。 |
|
| jolokiaPort | ベースイメージによって公開される Jolokia エージェントのポート。Jolokia ポートを公開したくない場合はこれを 0 に設定します。 | 8778 |
| mainClass |
呼び出すメインクラス。指定のない場合は次のようにジェネレーターがメインクラスを検索します。最初に、fat-jar を検出するためにチェックが実行されます。次に、 | |
| user |
ファイルを追加するユーザーやグループ。ベースイメージにユーザーがすでに存在している必要があります。通常の形式は |
|
| webPort | サービスとして公開するポート。Web アプリケーションのポートであるはずです。ポートを公開しない場合はこれを 0 に設定します。 | 8080 |