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
コマンドを使ってファイル
を追加することは、ビルドコンテキストの外にあるためできません。
Docker Hubとは異なり、DockerfileはRed Hat Quayのビルドコンテキストの一部です。そのため、.dockerignore
ファイルに表示されてはいけません。