= 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. <> == 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. {{attachment:bstContainer.jpg}} To be able to use containers with Brainstorm it is necessary to have a supported container engine. == Setup in Brainstorm == 1. 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 2. Once installed, set it as default Container engine in Brainstorm preferences IMAGE == Interactive management == {{{#!wiki note Container plugins are not usually installed alone, their installation is commonly as a dependency for a [[Tutorials/PipelineEditor|Brainstorm process]] or a [[Tutorials/Plugins|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 [[https://neuroimage.usc.edu/brainstorm/Tutorials/Plugins#Command-line_management|plugin tutorial]]. An API for low-level interaction between Brainstorm and the container engine has been implemented in `bst_containers.m` <)>><><)>> <>