This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.6. Buildah によるカスタムイメージビルド
OpenShift Container Platform 4.8 では、docker ソケットはホストノードに表示されません。これは、カスタムビルドの mount docker socket オプションがカスタムビルドイメージ内で使用できる docker ソケットを提供しない可能性がゼロではないことを意味します。
イメージのビルドおよびプッシュにこの機能を必要とする場合、Buildah ツールをカスタムビルドイメージに追加し、これを使用してカスタムビルドロジック内でイメージをビルドし、プッシュします。以下の例は、Buildah でカスタムビルドを実行する方法を示しています。
カスタムビルドストラテジーを使用するためには、デフォルトで標準ユーザーが持たないパーミッションが必要です。このパーミッションはユーザーがクラスターで実行される特権付きコンテナー内で任意のコードを実行することを許可します。このレベルのアクセスを使用するとクラスターが危険にさらされる可能性があるため、このアクセスはクラスターで管理者権限を持つ信頼されたユーザーのみに付与される必要があります。
2.6.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- カスタムビルドパーミッションを付与する 方法について確認してください。
2.6.2. カスタムビルドアーティファクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
カスタムビルドイメージとして使用する必要のあるイメージを作成する必要があります。
手順
空のディレクトリーからはじめ、以下の内容を含む
Dockerfile
という名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 同じディレクトリーに、
dockerfile.sample
という名前のファイルを作成します。このファイルはカスタムビルドイメージに組み込まれ、コンテンツビルドによって生成されるイメージを定義します。FROM registry.access.redhat.com/ubi8/ubi RUN touch /tmp/build
FROM registry.access.redhat.com/ubi8/ubi RUN touch /tmp/build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 同じディレクトリーに、
build.sh
という名前のファイルを作成します。このファイルには、カスタムビルドの実行時に実行されるロジックが含まれます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.3. カスタムビルダーイメージのビルド リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform を使用してカスタムストラテジーで使用するカスタムビルダーイメージをビルドし、プッシュすることができます。
前提条件
- 新規カスタムビルダーイメージの作成に使用されるすべての入力を定義します。
手順
カスタムビルダーイメージをビルドする
BuildConfig
オブジェクトを定義します。oc new-build --binary --strategy=docker --name custom-builder-image
$ oc new-build --binary --strategy=docker --name custom-builder-image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタムビルドイメージを作成したディレクトリーから、ビルドを実行します。
oc start-build custom-builder-image --from-dir . -F
$ oc start-build custom-builder-image --from-dir . -F
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドの完了後に、新規のカスタムビルダーイメージが
custom-builder-image:latest
という名前のイメージストリームタグのプロジェクトで利用可能になります。
2.6.4. カスタムビルダーイメージの使用 リンクのコピーリンクがクリップボードにコピーされました!
カスタムビルダーイメージとカスタムストラテジーを併用する BuildConfig
オブジェクトを定義し、カスタムビルドロジックを実行することができます。
前提条件
- 新規カスタムビルダーイメージに必要なすべての入力を定義します。
- カスタムビルダーイメージをビルドします。
手順
buildconfig.yaml
という名前のファイルを作成します。このファイルは、プロジェクトに作成され、実行されるBuildConfig
オブジェクトを定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- プロジェクト名を指定します。
BuildConfig
を作成します。oc create -f buildconfig.yaml
$ oc create -f buildconfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow imagestream.yaml
という名前のファイルを作成します。このファイルはビルドがイメージをプッシュするイメージストリームを定義します。kind: ImageStream apiVersion: image.openshift.io/v1 metadata: name: sample-custom spec: {}
kind: ImageStream apiVersion: image.openshift.io/v1 metadata: name: sample-custom spec: {}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow imagestream を作成します。
oc create -f imagestream.yaml
$ oc create -f imagestream.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタムビルドを実行します。
oc start-build sample-custom-build -F
$ oc start-build sample-custom-build -F
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドが実行されると、以前にビルドされたカスタムビルダーイメージを実行する Pod が起動します。Pod はカスタムビルダーイメージのエントリーポイントとして定義される
build.sh
ロジックを実行します。build.sh
ロジックは Buildah を起動し、カスタムビルダーイメージに埋め込まれたdockerfile.sample
をビルドしてから、Buildah を使用して新規イメージをsample-custom image stream
にプッシュします。