Skip to the content.

Packaging for conda in a container

How to build BrainVisa packages and publish them for end users in a container

Creating an Apptainer/Singularity container with a pixi installation inside

A developer environment is needed for this containerization: it is barely used but relies on the infrastructure of Casa-distro and Brainvisa-cmake. Packages are actually the ones already published thus this is clearly overkill, we could simplify this in the future.

Make sure that the apptainer distribution works with the "fakeroot" features

apptainer pull ubuntu-24.04.sif docker://ubuntu:24.04
export CASA_BASE_DIRECTORY=$(pwd)
casa_distro_admin create_base_image type=pixi image_version=5.4 base=ubuntu-24.04.sif
casa_distro_admin create_user_image container_type=apptainer_pixi image_version=5.4 base_image=casa-pixi-5.4.sif version=6.0 distro=brainvisa install=0
casa_distro_admin create_user_image container_type=apptainer_pixi image_version=5.4 base_image=casa-pixi-5.4.sif version=6.0 distro=brainvisa

Installing an apptainer/pixi environment (user side):

(note: this doc section should end up in a user installation doc)

mkdir brainvisa-6.0
apptainer run -c -B $HOME -B brainvisa-6.0:/casa/setup brainvisa-6.0.sif

Creating a self-contained container from the modular one

Bootstrap: localimage

From: brainvisa-6.0.sif

%post
cd /casa/install
pixi add brainvisa=6.0
pixi run bv_update_bin_links
apptainer build brainvisa_monolithic-6.0.sif brainvisa-monolithic.recipe
mkdir brainvisa-monomithic-6.0
apptainer run -c -B brainvisa-monlithic-6.0:/casa/setup brainvisa-monolithic-6.0.sif