10.9. ビルドと自動化


このセクションでは、Red Hat Quay 内で自動ビルドを管理するために使用できる設定オプションについて説明します。これらの設定は、Dockerfile ビルドのトリガー、処理、保存方法と、ビルドログの管理およびアクセス方法を制御します。

これらのフィールドは次の目的で使用できます。

  • ソースリポジトリーからの自動ビルドを有効または無効にします。
  • ビルドマネージャーの動作とリソース管理を設定します。
  • 監査またはデバッグの目的でビルドログへのアクセスと保持を制御します。

これらのオプションは、CI/CD パイプラインを合理化し、ビルドポリシーを適用して、レジストリー全体のビルド履歴の可視性を維持するのに役立ちます。

10.9.1. Dockerfile ビルドトリガーフィールド

このセクションでは、Dockerfiles およびソースコードリポジトリーから Red Hat Quay で自動ビルドを有効にして管理するために使用される設定フィールドについて説明します。これらのフィールドを使用すると、ビルドの動作を定義し、GitHub、GitLab、Bitbucket トリガーのサポートを有効または無効にして、各 SCM プロバイダーの OAuth 認証情報とエンドポイントを提供できます。

Expand
表10.32 Dockerfile ビルドのサポート
フィールド説明

FEATURE_BUILD_SUPPORT

Boolean

Dockerfile ビルドをサポートするかどうか

デフォルト: False

SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD

数値

None に設定されていない場合、ビルドトリガーが自動的に無効にされる前に、連続で失敗できる回数。

デフォルト: 100

SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD

数値

None に設定されていない場合、ビルドトリガーが自動的に無効にされる前に、連続で発生可能な内部エラーの回数。

デフォルト: 5

Dockerfile ビルドサポートの YAML サンプル

# ...
FEATURE_BUILD_SUPPORT: true
SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD: 100
SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD: 5
# ...
Copy to Clipboard Toggle word wrap

Expand
表10.33 GitHub ビルドトリガー
フィールド説明

FEATURE_GITHUB_BUILD

Boolean

GitHub ビルドトリガーをサポートするかどうか。

デフォルト: False

GITHUB_TRIGGER_CONFIG

Object

ビルドトリガーに GitHub Enterprise を使用するための設定。

   .GITHUB_ENDPOINT
(必須)

文字列

GitHub Enterprise のエンドポイント。

例: https://github.com/

   .API_ENDPOINT

文字列

使用する GitHub Enterprise API のエンドポイント。github.com に対してオーバーライドする必要があります。

: https://api.github.com/

   .CLIENT_ID
(必須)

文字列

この Red Hat Quay インスタンスの登録済みクライアント ID。これを GITHUB_LOGIN_CONFIG と共有することはできません。

   .CLIENT_SECRET
(必須)

文字列

この Red Hat Quay インスタンスの登録されたクライアントシークレット。

Github ビルドトリガーの YAML サンプル

# ...
FEATURE_GITHUB_BUILD: true
GITHUB_TRIGGER_CONFIG:
  GITHUB_ENDPOINT: https://github.com/
  API_ENDPOINT: https://api.github.com/
  CLIENT_ID: your-client-id
  CLIENT_SECRET: your-client-secret
# ...
Copy to Clipboard Toggle word wrap

Expand
表10.34 BitBucket ビルドトリガー
フィールド説明

FEATURE_BITBUCKET_BUILD

Boolean

Bitbucket ビルドトリガーをサポートするかどうか。

デフォルト: False

BITBUCKET_TRIGGER_CONFIG

Object

ビルドトリガーに BitBucket を使用するための設定。

   .CONSUMER_KEY
(必須)

文字列

この Red Hat Quay インスタンスの登録済みコンシューマーキー (クライアント ID)。

   .CONSUMER_SECRET
(必須)

文字列

この Red Hat Quay インスタンスの登録済みコンシューマーシークレット (クライアントシークレット)。

Bitbucket ビルドトリガーの YAML サンプル

# ...
FEATURE_BITBUCKET_BUILD: true
BITBUCKET_TRIGGER_CONFIG:
  CONSUMER_KEY: <your_consumer_key>
  CONSUMER_SECRET: <your-consumer-secret>
# ...
Copy to Clipboard Toggle word wrap

Expand
表10.35 GitLab ビルドトリガー
フィールド説明

FEATURE_GITLAB_BUILD

Boolean

GitLab ビルドトリガーをサポートするかどうか。

デフォルト: False

GITLAB_TRIGGER_CONFIG

Object

ビルドトリガーに Gitlab を使用するための設定。

   .GITLAB_ENDPOINT
(必須)

文字列

Gitlab Enterprise が実行されているエンドポイント。

   .CLIENT_ID
(必須)

文字列

この Red Hat Quay インスタンスの登録済みクライアント ID。

   .CLIENT_SECRET
(必須)

文字列

この Red Hat Quay インスタンスの登録されたクライアントシークレット。

GitLab ビルドトリガーの YAML サンプル

# ...
FEATURE_GITLAB_BUILD: true
GITLAB_TRIGGER_CONFIG:
  GITLAB_ENDPOINT: https://gitlab.example.com/
  CLIENT_ID: <your_gitlab_client_id>
  CLIENT_SECRET: <your_gitlab_client_secret>
# ...
Copy to Clipboard Toggle word wrap

10.9.2. ビルドマネージャー設定フィールド

次の設定フィールドは、Red Hat Quay のビルドマネージャーコンポーネントがコンテナーイメージのビルドをオーケストレーションおよび管理する方法を制御します。これには、Redis 調整、Kubernetes や EC2 などのエグゼキューターバックエンド、ビルダーイメージ設定、高度なスケジュール設定と再試行ポリシーの設定が含まれます。

これらのフィールドは、インフラストラクチャー環境とワークロードの要件に合わせて設定する必要があります。

Expand
表10.36 ビルドマネージャー設定フィールド
フィールド説明

ALLOWED_WORKER_COUNT

文字列

Red Hat Quay Pod ごとにインスタンス化される Build Worker の数を定義します。通常は 1 に設定します。

ORCHESTRATOR_PREFIX

文字列

すべての Redis キーに追加する一意の接頭辞を定義します。これは、オーケストレーターの値を他の Redis キーから分離するのに役立ちます。

REDIS_HOST

Object

Redis サービスのホスト名。

REDIS_PASSWORD

文字列

Redis サービスへの認証に使用するパスワード。

REDIS_SSL

Boolean

Redis の接続に SSL/TLS を使用するかどうかを定義します。

REDIS_SKIP_KEYSPACE_EVENT_SETUP

Boolean

デフォルトでは、Red Hat Quay はランタイム時のキーイベントに必要なキースペースイベントを設定しません。これを行うには、REDIS_SKIP_KEYSPACE_EVENT_SETUPFalse に設定します。

EXECUTOR

文字列

このタイプのエグゼキュータの定義を開始します。有効な値は kubernetes および ec2 です。

BUILDER_NAMESPACE

文字列

Red Hat Quay のビルドが行われる Kubernetes namespace。

K8S_API_SERVER

Object

ビルドが行われる OpenShift Container Platform クラスターの API サーバーのホスト名。

K8S_API_TLS_CA

Object

API 呼び出しの実行時に Quay アプリケーションが信頼するビルドクラスターの CA 証明書の Quay コンテナーのファイルパス。

KUBERNETES_DISTRIBUTION

文字列

使用している Kubernetes の種類を示します。有効な値は openshift および k8s です。

CONTAINER_*

Object

build Pod のリソース要求および制限を定義します。

NODE_SELECTOR_*

Object

build Pod がスケジューリングされるノードセレクターラベル名と値のペアを定義します。

CONTAINER_RUNTIME

Object

ビルダーが dockerpodman のどちらを実行するかを指定します。Red Hat の quay-builder イメージを使用しているお客様は、これを podman に設定してください。

SERVICE_ACCOUNT_NAME/SERVICE_ACCOUNT_TOKEN

Object

build Pod で使用されるサービスアカウント名またはトークンを定義します。

QUAY_USERNAME/QUAY_PASSWORD

Object

WORKER_IMAGE フィールドで指定された Red Hat Quay ビルドワーカーイメージをプルするために必要なレジストリー認証情報を定義します。お客様は、registry.redhat.io に対して https://access.redhat.com/RegistryAuthentication の記事の「レジストリーサービスアカウントの作成」セクションで定義されている Red Hat Service Account の認証情報を提供する必要があります。

WORKER_IMAGE

Object

Red Hat Quay ビルダーイメージのイメージ参照 (registry.redhat.io/quay/quay-builder)。

WORKER_TAG

Object

希望するビルダーイメージのタグ。最新バージョンは 3 です。

BUILDER_VM_CONTAINER_IMAGE

Object

各 Red Hat Quay Build を実行するために必要な内部仮想マシンを保持するコンテナーイメージへの完全な参照。(registry.redhat.io/quay/quay-builder-qemu-rhcos:3)。

SETUP_TIME

文字列

ビルドがまだビルドマネージャーに登録されていない場合に、タイムアウトする秒数を指定します。デフォルトは 500 秒です。タイムアウトしたビルドは、3 回再起動が試みられます。3 回試してもビルドが登録されない場合は、失敗とみなされます。

MINIMUM_RETRY_THRESHOLD

文字列

この設定は、複数のエグゼキューターで使用されます。別のエグゼキューターを選択するまでに、ビルドの開始を何回再試行するかを示します。0 に設定すると、ビルドジョブの試行回数に制限がなくなります。この値を意図的に小さく (3 以下) しておくことで、インフラストラクチャーに障害が発生した際に迅速にフェイルオーバーを行うことができます。この設定には値を指定する必要があります。たとえば、Kubernetes を第 1 のエグゼキューター、EC2 を第 2 のエグゼキューターとして設定します。ジョブ実行の最後の試行を常に Kubernetes ではなく EC2 で実行する場合は、Kubernetes のエグゼキューターの MINIMUM_RETRY_THRESHOLD1 に、EC2 の MINIMUM_RETRY_THRESHOLD0 に設定します (設定していない場合はデフォルトで 0 になります)。この場合、Kubernetes の MINIMUM_RETRY_THRESHOLD retries_remaining(1)False と評価され、設定された 2 番目のエクゼキュータにフォールバックされます。

SSH_AUTHORIZED_KEYS

Object

ignition 設定でブートストラップする SSH 鍵のリスト。これにより、他の鍵を使用して EC2 インスタンスや QEMU 仮想マシン (VM) に SSH 接続できます。

ビルドマネージャー設定フィールド

# ...
ALLOWED_WORKER_COUNT: "1"
ORCHESTRATOR_PREFIX: "quaybuild:"
REDIS_HOST: redis.example.com
REDIS_PASSWORD: examplepassword
REDIS_SSL: true
REDIS_SKIP_KEYSPACE_EVENT_SETUP: false
EXECUTOR: kubernetes
BUILDER_NAMESPACE: quay-builder
K8S_API_SERVER: https://api.openshift.example.com:6443
K8S_API_TLS_CA: /etc/ssl/certs/ca.crt
KUBERNETES_DISTRIBUTION: openshift
CONTAINER_RUNTIME: podman
CONTAINER_MEMORY_LIMITS: 2Gi
NODE_SELECTOR_ROLE: quay-build-node
SERVICE_ACCOUNT_NAME: quay-builder-sa
QUAY_USERNAME: quayuser
QUAY_PASSWORD: quaypassword
WORKER_IMAGE: quay.io/quay/quay-builder
WORKER_TAG: latest
BUILDER_VM_CONTAINER_IMAGE: quay.io/quay/vm-builder:latest
SETUP_TIME: "500"
MINIMUM_RETRY_THRESHOLD: "1"
SSH_AUTHORIZED_KEYS:
  - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsomekey user@example.com
  - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAnotherkey user2@example.com
# ...
Copy to Clipboard Toggle word wrap

10.9.3. ビルドログ設定フィールド

このセクションでは、Red Hat Quay でビルドログを管理するために使用できる設定フィールドについて説明します。これらの設定により、ビルドログがアーカイブされる場所、アクセスできるユーザー、および保存方法が決まります。

Expand
表10.37 ビルドログ設定フィールド
フィールド説明

FEATURE_READER_BUILD_LOGS

Boolean

true に設定すると、write アクセス権や admin アクセス権だけでなく、リポジトリーへの read アクセス権を持つユーザーもビルドログを読み取ることができます。

デフォルト:False

LOG_ARCHIVE_LOCATION

文字列

アーカイブされたビルドログを配置する、DISTRIBUTED_STORAGE_CONFIG で定義されたストレージの場所。

例: s3_us_east

LOG_ARCHIVE_PATH

文字列

アーカイブされたビルドログを .JSON 形式で配置する、設定されたストレージエンジンの下のパス。

例: archives/buildlogs

ビルドログの YAML サンプル

# ...
FEATURE_READER_BUILD_LOGS: true
LOG_ARCHIVE_LOCATION: s3_us_east
LOG_ARCHIVE_PATH: archives/buildlogs
# ...
Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat