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/