Skip to content

Building Docker images with Packer

Most of our CI Jobs running on Nomad are containerized via Docker to ensure reproducibility between builds.

The docker image definitions are available in alisw/docks, and the CERN docker registry is https://registry.cern.ch/

Rebuilding a Docker image#

If an image definition has changed, it must be rebuilt and pushed to the proper registry for Nomad to use it in new job allocations.

Packer-defined images#

Newer images have a packer.json file, which allows them to be built using Hashicorp packer

There's a GitHub Action here that will rebuild and push the images for you.

In case you prefer to do it manually:

brew install packer # > 0.10.0
cd <image-name>
packer build packer.json
docker push registry.cern.ch/alisw/<image-name>

Dockerfile-defined images#

Older images without a packer.json can be built with:

docker build -t alisw/<image-name> <image-name>

Conventions#

The CI uses an image named -builder where is the architecture of the image. The CI system will automatically select the correct image for a given architecture, so the image name must match the format exactly.

The code to infer the image names is here