第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. ビルドでイメージが生成される場合には、ビルドの出力場所が定義されていれば、その場所にプッシュします。他の出力場所には、環境変数を使用して渡すことができます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.