4.2. ビルドプロセス
ビルドプロセスは、以下の 3 つの要素で設定されており、これら 3 つを組み合わせて最終的なコンテナーイメージが作成されます。
- ソース
- S2I スクリプト
- ビルダーイメージ
ビルドプロセス中に、S2I はソースとスクリプトをビルダーイメージ内に配置する必要があります。ビルダーイメージ内にソースとスクリプトを配置するために、S2I はソースとスクリプトを含む tar ファイルを作成してから、このファイルをビルダーイメージにストリーミングします。assemble スクリプトを実行する前に、S2I はファイルを展開して、ビルドイメージからコンテンツを io.openshift.s2i.destination
ラベルで指定される場所に配置します。デフォルトの場所は /tmp ディレクトリーです。
このプロセスを行うには、イメージに tar アーカイブユーティリティー (tar
コマンドは $PATH
にあります) とコマンドラインインタープリター (/bin/sh
コマンド) が必要です。これにより、イメージが最速のビルドパスを使用できるようになります。 tar
または /bin/sh
コマンドが利用できない場合には s2i ビルド
プロセスにより、イメージ内にソースとスクリプトが配置されるように、追加のコンテナーが自動で強制実行されて初めて、通常のビルドが実行されます。
基本的な S2I ビルドワークフローについては、以下の図を参照してください。
図4.1 ビルドのワークフロー
-
ビルドの実行では、ソース、スクリプト、アーティファクト (ある場合) を展開して、
assemble
スクリプトを実行します。2 回目の実行の場合には (tar
または/bin/sh
を検出できないエラーが発生した後など)、スクリプトとソースの両方があるので、assemble
スクリプトの呼び出しのみを行います。