3.4. 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

The executor image installs the simulator packages and the image build tooling, and builds no disk image: the images SimBricks publishes are downloaded on first use (The images SimBricks publishes).

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/