8.13. S2I
イメージには S2I スクリプトと Maven が含まれます。
現在 Maven は、OpenShift 上の JBoss EAP ベースのコンテナー (または関連/子孫イメージ) にデプロイされるはずのアプリケーションのビルドツールとしてのみサポートされます。
現在、WAR デプロイメントのみがサポートされます。
8.13.1. カスタム設定
イメージのカスタム設定ファイルを追加することが可能です。configuration/
ディレクトリーに置かれたすべてのファイルは EAP_HOME/standalone/configuration/
にコピーされます。たとえば、イメージで使用されるデフォルトの設定をオーバーライドするには、カスタムの standalone-openshift.xml
を configuration/
ディレクトリーに追加します。このようなデプロイメントの例を参照してください。
8.13.1.1. カスタムモジュール
カスタムモジュールを追加することが可能です。modules/
ディレクトリーからのすべてのファイルは EAP_HOME/modules/
にコピーされます。このようなデプロイメントの 例を参照 してください。
8.13.2. デプロイメントアーティファクト
デフォルトでは、ソースの target
ディレクトリーからのアーティファクトがデプロイされます。異なるディレクトリーからデプロイするには、BuildConfig 定義の ARTIFACT_DIR
環境変数を設定します。ARTIFACT_DIR
はカンマ区切りのリストです。例: ARTIFACT_DIR=app1/target,app2/target,app3/target
8.13.3. アーティファクトリポジトリーミラー
Maven のリポジトリーは、すべてのプロジェクト JAR、ライブラリー JAR、プラグイン、またはその他のプロジェクト固有のアーティファクトなど、さまざまな種類のビルドアーティファクトおよび依存関係を保持します。また、S2I ビルドの実行中にアーティファクトのダウンロード元となる場所も指定します。組織では、中央リポジトリーを使用する他に、ローカルカスタムミラーリポジトリーをデプロイすることが一般的です。
ミラーを使用する利点は次のとおりです。
- 地理的に近く、高速な同期ミラーを使用できる。
- リポジトリーの内容をより良く制御できる。
- パブリックサーバーおよびリポジトリーに依存する必要なく、異なるチーム (開発者、CI) 全体でアーティファクトを共有できる。
- ビルド時間が改善される。
多くの場合で、リポジトリーマネージャーはミラーへのローカルキャッシュとして機能できます。リポジトリーマネージャーがすでにデプロイされ、http://10.0.0.1:8080/repository/internal/
で外部アクセス可能な場合、以下のように MAVEN_MIRROR_URL
環境変数をアプリケーションのビルド設定に提供すると S2I ビルドはこのマネージャーを使用することができます。
MAVEN_MIRROR_URL
変数を適用するビルド設定の名前を特定します。oc get bc -o name buildconfig/eap
eap
のビルド設定をMAVEN_MIRROR_URL
環境変数で更新します。oc env bc/eap MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/" buildconfig "eap" updated
設定を確認します。
oc env bc/eap --list # buildconfigs eap MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/
- アプリケーションの新しいビルドをスケジュールします。
アプリケーションのビルド中、Maven 依存関係はデフォルトのパブリックリポジトリーではなく、リポジトリーマネージャーからプルされることを確認できます。またビルドの完了後、ビルド中に取得および使用されたすべての依存関係がミラーに追加されたことが確認できます。
8.13.4. スクリプト
run
-
このスクリプトは、
standalone-openshift.xml
設定で JBoss EAP を設定および開始するopenshift-launch.sh
スクリプトを使用します。 assemble
-
このスクリプトは Maven を使用してソースをビルドして、パッケージ (WAR) を作成し、それを
EAP_HOME/standalone/deployments
ディレクトリーに移動します。
8.13.5. 環境変数
s2i build
コマンドに指定する環境変数によって、ビルドの実行方法が異なります。指定できる環境変数は次のとおりです。
変数名 | 説明 |
---|---|
ARTIFACT_DIR |
このディレクトリーからの
値の例: |
HTTP_PROXY_HOST | Maven が使用する HTTP プロキシーのホスト名または IPアドレス。
値の例: |
HTTP_PROXY_PORT | Maven が使用する HTTP プロキシーの TCP ポート。
値の例: |
HTTP_PROXY_USERNAME |
値の例: |
HTTP_PROXY_PASSWORD |
値の例: |
HTTP_PROXY_NONPROXYHOSTS | 指定された場合、設定された HTTP プロキシーはこれらのホストを無視します。
値の例: |
MAVEN_ARGS | ビルド中に Maven に指定された引数をオーバーライドします。
値の例: |
MAVEN_ARGS_APPEND | ビルド中に Maven に指定されたユーザー引数を追加します。
値の例: |
MAVEN_MIRROR_URL | 設定する Maven ミラー/リポジトリーマネージャーの URL。
値の例: |
MAVEN_CLEAR_REPO | 任意で、ビルド後にローカル Maven リポジトリーを消去します。
値の例: |
APP_DATADIR | 定義された場合、データファイルのコピー元であるソースのディレクトリー。
値の例: |
DATA_DIR |
値の例: |
詳細は、JBoss EAP for OpenShift イメージに含まれる Maven および S2I スクリプトを使用する、「JBoss EAP for OpenShift イメージでの Java アプリケーションのビルドおよび実行」を参照してください。