Docker Images

TaskCluster Docker images are defined in the source directory under testing/docker. Each directory therein contains the name of an image used as part of the task graph.

Adding Extra Files to Images

Dockerfile syntax has been extended to allow any file from the source checkout to be added to the image build context. (Traditionally you can only ADD files from the same directory as the Dockerfile.)

Simply add the following syntax as a comment in a Dockerfile:

# %include <path>

e.g.

# %include mach # %include testing/mozharness

The argument to # %include is a relative path from the root level of the source directory. It can be a file or a directory. If a file, only that file will be added. If a directory, every file under that directory will be added (even files that are untracked or ignored by version control).

Files added using # %include syntax are available inside the build context under the topsrcdir/ path.

Files are added as they exist on disk. e.g. executable flags should be preserved. However, the file owner/group is changed to root and the mtime of the file is normalized.

Here is an example Dockerfile snippet:

# %include mach
ADD topsrcdir/mach /home/worker/mach