Во-первых, вы захотите получить среду YML для вашей конкретной среды conda.
conda activate your_env
conda env export > environment.yml
Обычно вы просто используете это следующим образом:
conda env create -f environment.yml
Но,немного сложнее контейнировать вашу сборку с Singularity.
Вот пример рецепта Singularity (в файле с именем «Singularity» в том же каталоге, что и «environment.yml»):
Bootstrap: docker
From: continuumio/miniconda3
%files
environment.yml
%environment
PATH=/opt/conda/envs/$(head -1 environment.yml | cut -d' ' -f2)/bin:$PATH
%post
echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc
echo "source activate $(head -1 environment.yml | cut -d' ' -f2)" > ~/.bashrc
/opt/conda/bin/conda env create -f environment.yml
%runscript
exec "$@"
Buildэто с помощью
sudo singularity build conda.simg Singularity
Теперь у вас будет работающий контейнер, использующий библиотеки из вашей среды conda, которые можно запускать везде, где у вас установлена Singularity!
Примеры:
singularity run conda.simg conda -h
singularity run conda.simg ipython