Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第6章 カスタムのビルダー

6.1. 概要

ビルドプロセス全体を行う固有のビルダーイメージを定義できるように、OpenShift Container Platform の「カスタムビルドストラテジー」は、コンテナーイメージの作成がよく使用されるようになり、できた差を埋めるために設計されました。ビルドが個別のアーティファクト (パッケージ、JAR、WAR、インストール可能な ZIP およびベースイメージなど) を生成する必要がある場合には、カスタムビルドストラテジーを使用する カスタムビルダーイメージ がこの要件を満たすのに最適です。

カスタムビルダーイメージは、RPM またはベースのコンテナーイメージの構築など、ビルドプロセスのロジックに組み込まれるプレーンなコンテナーイメージです。openshift/origin-custom-docker-builder イメージは、カスタムのビルダーイメージの実装例として Docker Hub で入手できます。

さらに、カスタムビルダーは、単体または統合テストを実行する CI/CD フローなどの拡張ビルドプロセスを実装できます。

カスタムのビルドストラテジーの利点を完全に活用するには、任意のオブジェクトをビルド可能な、カスタムビルダーイメージの作成方法を理解する必要があります。

6.2. カスタムビルダーイメージ

呼び出し時に、カスタムのビルダーイメージは、ビルドの続行に必要な情報が含まれる以下の環境変数を受け取ります。

表6.1 カスタムビルダーの環境変数

変数名説明

BUILD

Build オブジェクト定義のシリアル化された JSON すべて。シリアル化した中で固有の API バージョンを使用する必要がある場合は、ビルド設定の「カスタムストラテジーの仕様」で、buildAPIVersion パラメーターを設定できます。

SOURCE_REPOSITORY

ビルドするソースが含まれる Git リポジトリーの URL

SOURCE_URI

SOURCE_REPOSITORY と同じ値を仕様します。どちらでも使用できます。

SOURCE_CONTEXT_DIR

ビルドじに使用する Git リポジトリーのサブディレクトリーを指定します。定義された場合のみ表示されます。

SOURCE_REF

ビルドする git 参照

ORIGIN_VERSION

ビルドオブジェクトを作成した OpenShift Container Platform のマスターのバージョン

OUTPUT_REGISTRY

イメージをプッシュする先の Docker レジストリー

OUTPUT_IMAGE

ビルドするイメージの Docker タグ名

PUSH_DOCKERCFG_PATH

docker push の操作実行に使用する Docker の認証情報へのパス

DOCKER_SOCKET

Docker ソケットの公開がビルド設定で有効化されている場合に Docker ソケットへのパスを指定します (exposeDockerSockettrue に設定されている場合)。

6.3. カスタムビルダーのワークフロー

カスタムビルダーイメージの作者は、ビルドプロセスを柔軟に定義できますが、ビルダーイメージは、OpenShift Container Platform 内でビルドがシームレスに実行されるように必要とされる以下の手順に従う必要があります。

  1. Build オブジェクト定義には、ビルドの入力パラメーターの必要情報がすべて含まれています。
  2. ビルドプロセスを実行します。
  3. ビルドでイメージが生成される場合には、ビルドの出力場所が定義されていれば、その場所にプッシュします。他の出力場所には、環境変数を使用して渡すことができます。