8.5. ビルドストラテジーのオプション
8.5.1. Source-to-Image ストラテジーのオプション
以下のオプションは、S2I ビルドストラテジー に固有のオプションです。
8.5.1.1. 強制プル
ビルド設定で指定したビルドイメージがノードでローカルに利用できる場合には、デフォルトではそのイメージが使用されます。ただし、ローカルイメージを上書きして、イメージストリームが参照するレジストリーからイメージを更新する場合には、 forcePull
フラグを true に設定して BuildConfig
を作成します。
strategy: sourceStrategy: from: kind: "ImageStreamTag" name: "builder-image:latest" 1 forcePull: true 2
8.5.1.2. 増分ビルド
S2I は増分ビルドを実行できるので、以前にビルドされたイメージからのアーティファクトが再利用されます。増分ビルドを作成するには、ストラテジー定義に以下の変更を加えて BuildConfig
を作成します。
strategy: sourceStrategy: from: kind: "ImageStreamTag" name: "incremental-image:latest" 1 incremental: true 2
増分ビルドをサポートするビルダーイメージを作成する方法に関する説明は、S2I Requirements を参照してください。
8.5.1.3. ビルダーイメージのスクリプトの上書き
ビルダーイメージが提供する assemble, run および save-artifacts の S2I スクリプト は、以下 2 種類のいずれかの方法で上書きできます。次のいずれかになります。
- アプリケーションのソースリポジトリーの .s2i/bin ディレクトリーに assemble、run および/または save-artifacts スクリプトを指定します。
- ストラテジー定義の一部として、スクリプトを含むディレクトリーの URL を指定します。以下は例になります。
strategy:
sourceStrategy:
from:
kind: "ImageStreamTag"
name: "builder-image:latest"
scripts: "http://somehost.com/scripts_directory" 1
- 1
- このパスに、run, assemble および save-artifacts が追加されます。一部または全スクリプトがある場合、そのスクリプトが、イメージに指定された同じ名前のスクリプトの代わりに使用されます。
scripts
URL に配置されているファイルは、ソースリポジトリーの .s2i/bin に配置されているファイルよりも優先されます。S2I スクリプトがどのように使用されるかについては、S2I 要件 のトピックおよび S2I ドキュメント を参照してください。
8.5.1.4. 環境変数
ソースビルド のプロセスと生成されるイメージで環境変数を利用できるようにする方法として、2 つの方法があります。2 種類 (環境ファイル および BuildConfig 環境 の値の使用) あります。指定される変数は、ビルドプロセスでアウトプットイメージに表示されます。
8.5.1.4.1. 環境ファイル
ソースビルドでは、ソースリポジトリーの .s2i/environment ファイルに指定することで、アプリケーション内に環境の値 (1 行に 1 つ) を設定できます。このファイルで指定された環境変数は、ビルドプロセスとアウトプットイメージに存在します。サポートされる環境変数の完全な一覧は、各イメージの ドキュメント にあります。
ソースリポジトリーに .s2i/environment ファイルを渡すと、S2I はビルド時にこのファイルを読み取ります。これにより assemble スクリプトがこれらの変数を使用できるので、ビルドの動作をカスタマイズできます。
たとえば、Rails アプリケーションのアセットのコンパイルを無効にする場合には、.s2i/environment ファイルに DISABLE_ASSET_COMPILATION=true
を追加して、ビルド時にアセットのコンパイルがスキップされるようにします。
ビルド以外に、指定の環境変数も実行中のアプリケーション自体で利用できます。たとえば、.s2i/environment ファイルに RAILS_ENV=development
を追加して、Rails アプリケーションが production
ではなく development
モードで起動できるようにします。
8.5.1.4.2. BuildConfig 環境
環境変数を BuildConfig
の sourceStrategy
定義に追加できます。ここに定義されている環境変数は、assemble スクリプトの実行時に表示され、アウトプットイメージで定義されるので、run スクリプトやアプリケーションコードでも利用できるようになります。
Rails アプリケーションのアセットコンパイルを無効にする例:
sourceStrategy: ... env: - name: "DISABLE_ASSET_COMPILATION" value: "true"
ビルド環境 のセクションでは、より詳細な説明を提供します。
oc set env
コマンドで、BuildConfig
に定義した環境変数を管理することも可能です。
8.5.1.5. Web コンソールを使用したシークレットの追加
プライベートリポジトリーにアクセスできるようにビルド設定にシークレットを追加するには、以下を実行します。
- 新規の OpenShift Container Platform プロジェクトを作成します。
- プライベートのソースコードリポジトリーにアクセスするための認証情報が含まれる シークレットを作成 します。
- Source-to-Image (S2I) ビルド設定 を作成します。
-
ビルド設定エディターページまたは Web コンソール の
create app from builder image
ページで、Source Secret を設定します。 - Save ボタンをクリックします。
8.5.1.5.1. プルおよびプッシュの有効化
プライベートレジストリーにプルできるようにするには、ビルド設定に Pull Secret
を設定し、プッシュを有効にするには Push Secret
を設定します。
8.5.1.6. ソースファイルの無視
Source to image は .s2iignore
ファイルをサポートします。このファイルには、無視すべきファイルパターンの一覧が含まれます。.s2iignore
ファイルにあるパターンと一致する、さまざまな 入力ソース で提供されるビルドの作業ディレクトリーにあるファイルは assemble
スクリプトでは利用できません。
.s2iignore
ファイルの形式についての詳細は、 source-to-image ドキュメント を参照してください。