Containers with Brainstorm
Authors: Raymundo Cassani, Takfarinas Medani and Malte Höltershinken
Some Brainstorm functions and plugins rely on external software that is distributed as containers (for example: duneuro 2026). These containers are managed in Brainstorm as container plugins.
Some Brainstorm processes rely on external software distributed using containers (for example: duneuro). Containers allow Brainstorm to run complex tools without requiring manual installation of dependencies.
This page explains how containers are used by Brainstorm, and how set up your system to use them.
Contents
Introduction
A container is a packaged version of a software tool that includes everything it needs to run.
With containers:
You do not need to install additional libraries
- The software runs the same way on different computers
- Brainstorm can automatically download and use the required tools
You do not need prior knowledge of containers to use Brainstorm.
To be able to use containers with Brainstorm it is necessary to have a supported container engine.
Setup in Brainstorm
- First you need to install one of the supported container engines
Brainstorm supports the following container engines:
Docker Desktop recommended for most users) LINK TO INSTALLATION To install, be sure of follow the instructions for your OS:
https://docs.docker.com/desktop/Podman BRAINSTORM INTEGRATION ON DEV
Apptainer / Singularity BRAINSTORM INTEGRATION ON DEV recommended on HPC clusters
- Once installed, set it as default Container engine in Brainstorm preferences
- IMAGE
Interactive management
Container plugins are not usually installed alone, their installation is commonly as a dependency for a Brainstorm process or a Plugin.
SHOW THE GUI FOR CONTAINER PLUGINS
Container definition
ADVANCED Containers are plugins, and are defined in bst_plugin
Users can add their own containers as Custom Plugins
Command-line management
The calls to install or manage containers plugins are the same than for (code) plugins, see the plugin tutorial.
An API for low-level interaction between Brainstorm and the container engine has been implemented in bst_containers.m
