7.3. ビルドトリガー
リポジトリーのビルドは、SCM (GitHub、BitBucket、GitLab) へのプッシュや webhook への呼び出し などのイベントによって自動的にトリガーされることもあります。
7.3.1. 新しいビルドトリガーの作成
ビルドトリガーを設定するには、Builds view ページの Create Build Trigger
ボタンをクリックし、ダイアログの指示に従います。トリガーをセットアップするには、Red Hat Quay にリポジトリーへのアクセス権を与える必要があり、アカウントには SCM リポジトリーの管理者アクセスが必要 です。
7.3.2. ビルドトリガーの手動起動
ビルドトリガーを手動で起動するには、ビルドトリガーの横にあるアイコンをクリックし、Run Now
を選択します。
7.3.3. ビルドコンテキスト
Docker でイメージをビルドする際には、ビルドコンテキストとなるディレクトリーを指定します。Red Hat Quay で行われるビルドは、自分のマシンで docker build
を実行するのと変わらないため、これは手動ビルドとビルドトリガーの両方に当てはまります。
Red Hat Quay のビルドコンテキストは、常にビルドセットアップから指定された サブディレクトリー であり、指定されていない場合はビルドソースのルートにフォールバックします。ビルドがトリガーされると、Red Hat Quay のビルドワーカーは git リポジトリーをワーカーマシンにクローンし、ビルドを行う前にビルドコンテキストに入ります。
tar アーカイブをベースにしたビルドでは、ビルドワーカーがアーカイブを抽出し、ビルドコンテキストに入ります。以下に例を示します。
example ├── .git ├── Dockerfile ├── file └── subdir └── Dockerfile
上の例が、"example" という名前の GitHub リポジトリーのディレクトリー構造だと想像してみてください。ビルドトリガーの設定でサブディレクトリーが指定されていない場合や、手動でビルドを開始した場合は、example ディレクトリーでビルドを行います。
ビルドトリガーの設定でサブディレクトリーとして subdir
を指定した場合は、その中の Dockerfile のみがビルドの対象になります。つまり、Dockerfile の ADD
コマンドを使用して file
を追加することは、ビルドコンテキストの外にあるためできません。
Docker Hub とは異なり、Dockerfile は Red Hat Quay のビルドコンテキストの一部です。そのため、.dockerignore
ファイルに表示されてはいけません。