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