3.5. Building Docker Images Locally#

If you want to modify the SimBricks Docker images — for example, to bake additional simulators or custom disk images into an executor — you can build them locally from the main repository:

git clone https://github.com/simbricks/simbricks.git
cd simbricks
make docker-images

This builds and locally tags the three images simbricks/simbricks-baseenv, simbricks/simbricks-runner, and simbricks/simbricks-executor (see Using Pre-Built Docker Images for what each contains). The corresponding Dockerfiles live in docker/.

A few knobs are configurable via make variables (see docker/rules.mk): DOCKER_REGISTRY and DOCKER_TAG for naming, and CONDA_CHANNEL to build against the latest (default) or stable SimBricks conda channel.

Note

Building the executor image takes a while (typically well over 30 minutes): it clones the image-builder repository, builds the gem5-compatible kernel, and builds the complete base disk image inside the Docker build (using TCG, since KVM is not available there).

For custom executor environments it is usually easier to extend the pre-built images than to rebuild them, e.g.:

FROM simbricks/simbricks-executor
RUN micromamba install -y simbricks-my-simulator-sim-bin
COPY my-image/ /global_input/images/my-image/