5.2.5.2. S2I スクリプトの作成
S2I スクリプトは、ビルダーイメージ内でスクリプトを実行できる限り、どのプログラム言語でも記述できます。S2I は assemble/run/save-artifacts スクリプトを提供する複数のオプションをサポートします。ビルドごとに、これらの場所はすべて、以下の順番にチェックされます。
- BuildConfig に指定されるスクリプト
-
アプリケーションソースの
.s2i/binディレクトリーにあるスクリプト -
デフォルトの URL (
io.openshift.s2i.scripts-urlラベル) にあるスクリプト
イメージで指定した io.openshift.s2i.scripts-url ラベルも、BuildConfig で指定したスクリプトも、以下の形式のいずれかを使用します。
-
image:///path_to_scripts_dir: S2I スクリプトが配置されているディレクトリーへのイメージ内の絶対パス -
file:///path_to_scripts_dir: S2I スクリプトが配置されているディレクトリーへのホスト上の相対パスまたは絶対パス -
http(s)://path_to_scripts_dir: S2I スクリプトが配置されているディレクトリーの URL
表5.1 S2I スクリプト
| スクリプト | 説明 |
|---|---|
| assemble (必須) | assemble スクリプトは、ソースからアプリケーションアーティファクトをビルドし、イメージ内の適切なディレクトリーに配置します。このスクリプトのワークフローは以下のとおりです。
|
| run (必須) | run スクリプトはアプリケーションを実行します。 |
| save-artifacts (オプション) | save-artifacts スクリプトは、次に続くビルドプロセスを加速できるようにすべての依存関係を収集します。以下は例になります。
これらの依存関係は tar ファイルに集められ、標準出力としてストリーミングされます。 |
| usage (オプション) | usage スクリプトでは、ユーザーに、イメージの正しい使用方法を通知します。 |
| test/run (オプション) | test/run スクリプトでは、イメージが正しく機能しているかどうかを確認するための単純なプロセスを作成できます。このプロセスの推奨フローは以下のとおりです。
注記 test/run スクリプトでビルドしたテストアプリケーションを配置する推奨の場所は、イメージリポジトリーの test/test-app ディレクトリーです。詳しい情報は、S2I ドキュメント を参照してください。 |
5.2.5.2.1. S2I スクリプトの例
以下の S2I スクリプトの例は Bash で記述されています。それぞれの例では、tar の内容は /tmp/s2i ディレクトリーに展開されることが前提とされています。
例5.1 assemble スクリプト:
#!/bin/bash
# restore build artifacts
if [ "$(ls /tmp/s2i/artifacts/ 2>/dev/null)" ]; then
mv /tmp/s2i/artifacts/* $HOME/.
fi
# move the application source
mv /tmp/s2i/src $HOME/src
# build application artifacts
pushd ${HOME}
make all
# install the artifacts
make install
popd例5.2 run スクリプト:
#!/bin/bash # run the application /opt/application/run.sh
例5.3 save-artifacts スクリプト:
#!/bin/bash
pushd ${HOME}
if [ -d deps ]; then
# all deps contents to tar stream
tar cf - deps
fi
popd例5.4 usage スクリプト:
#!/bin/bash # inform the user how to use the image cat <<EOF This is a S2I sample builder image, to use it, install https://github.com/openshift/source-to-image EOF