7.3.3. ビルドコンテキスト
Docker でイメージをビルドする際には、ビルドコンテキストとなるディレクトリーを指定します。Red Hat Quay で行われるビルドは、自分のマシンで docker build
を実行するのと変わらないため、これは手動ビルドとビルドトリガーの両方に当てはまります。
Red Hat Quay のビルドコンテキストは、常にビルドセットアップから指定された サブディレクトリー であり、指定されていない場合はビルドソースのルートにフォールバックします。ビルドがトリガーされると、Red Hat Quay のビルドワーカーは git リポジトリーをワーカーマシンにクローンし、ビルドを行う前にビルドコンテキストに入ります。
tar アーカイブをベースにしたビルドでは、ビルドワーカーがアーカイブを抽出し、ビルドコンテキストに入ります。以下に例を示します。
上の例が、"example" という名前の GitHub リポジトリーのディレクトリー構造だと想像してみてください。ビルドトリガーの設定でサブディレクトリーが指定されていない場合や、手動でビルドを開始した場合は、example ディレクトリーでビルドを行います。
ビルドトリガーの設定でサブディレクトリーとして subdir
を指定した場合は、その中の Dockerfile のみがビルドの対象になります。つまり、Dockerfile の ADD
コマンドを使用して file
を追加することは、ビルドコンテキストの外にあるためできません。
Docker Hub とは異なり、Dockerfile は Red Hat Quay のビルドコンテキストの一部です。そのため、.dockerignore
ファイルに表示されてはいけません。