付録C Fabric8 Maven プラグイン
C.1. 概要
fabric8-maven-plugin
を利用すると、Java アプリケーションを OpenShift にデプロイできます。これは Maven との緊密なインテグレーションを提供し、すでに提供されているビルド設定の利点を活用できます。このプラグインは以下のタスクを中心に行います。
- Docker 形式イメージのビルド
- OpenShift リソース記述子の作成
大変柔軟に設定でき、以下を作成するために複数の設定モデルをサポートします。
- Zero-Config の設定: opinionated default (推奨されるデフォルト) で迅速な立ち上げが可能になります。または、より高度な要件を可能にします。
-
XML 設定:
pom.xml
ファイルに追加できるその他の設定オプションを提供します。
C.1.1. イメージのビルド
fabric8:build
ゴールは、アプリケーションが含まれる Docker 形式イメージの作成に使用されます。ビルドアーティファクトやイメージの依存関係を簡単に含めることができます。このプラグインは maven-assembly-plugin
のアセンブリー記述子を使用し、イメージに追加されるコンテンツを指定します。
Fuse on OpenShift では、OpenShift s2i
ビルドストラテジーのみがサポートされます。docker
ビルドストラテジーはサポートされません。
C.1.2. Kubernetes および OpenShift リソース
Kubernetes および OpenShift リソース記述子は、fabric8:resource
で作成できます。これらのファイルは Maven アーティファクト内にパッケージされ、fabric8:apply
を使用して稼働中のオーケストレーションプラットフォームにデプロイできます。
C.1.3. 設定
4 つのレベルの設定があります。
-
Zero-Config モードは、
pom.xml
ファイルにあるデータを基にして、使用するベースイメージや公開するポートなど、非常に的確な決定を行えるようにします。これは開始点として使用され、クイックスタートアプリケーションを小さくきれいに維持するために使用されます。 - XML プラグイン設定モードは docker-maven-plugin が提供するモードと似ています。IDE サポートでタイプセーフな設定が可能ですが、可能なリソース記述子機能のサブセットのみが提供されます。
-
Kubernetes and OpenShift リソースフラグメントは、プラグインで強化できるユーザー提供の YAML ファイルです。これにより、上級ユーザーはすべての機能が含まれるプレーンな設定ファイルを使用できますが、プロジェクト固有のビルド情報を追加したり、定型コードの使用を回避することができます。OpenShift クラスターで docker compose デプロイメントを立ち上げるために Docker Compose が使用されます。これには、OpenShift のデプロイメントプロセスに関する知識はほとんど必要ありません。設定に関する詳細は
https://maven.fabric8.io/#configuration
を参照してください。