6.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 ファイルには表示されません。