4.4. ONBUILD 命令でのイメージの使用
ONBUILD
命令は、公式のコンテナーイメージの多くに含まれています。以下に例を示します。
- Ruby
- Node.js
- Python
ONBUILD
に関する詳細は、Docker ドキュメント を参照してください。
S2I は、開始されると、S2I プロセスでビルドインプットの注入に必要とされる sh
と tar
バイナリーが、ビルダーイメージに含まれているかどうかを検出します。ビルダーイメージでこれらの要件が満たされていない場合には、代わりにインプットを階層化するコンテナービルドの実行を試みます。ビルダーイメージに ONBUILD
命令が含まれる場合には、ONBUILD
命令が階層化プロセス中に実行され、S2I ビルドよりセキュリティーが低い一般的なコンテナーが実行されるのと同等で、明示的なパーミッションが必要となるので、S2I ではビルドが失敗します。
このように、S2I ビルダーイメージに ONBUILD
命令が含まれていないことを確認するか、sh
と tar
バイナリーの要件が満たされていることを確認してください。