Я новичок в Singularity и хотел бы активировать среду conda (myenv
) в рецепте Singularity, чтобы установить в него пакет (mypkg
). Я прочитал некоторые похожие посты, но ответы не решили мою проблему, хотя вопросы очень похожи ( Активировать среду conda при выполнении контейнера Singularity в Nextflow , Как активировать среду Anaconda в Рецепт Сингулярности , Построение рецепта Сингулярности из Nipype docker image CommandNotFound ). Не могли бы вы помочь мне найти то, что я пропустил, пожалуйста?
В моем случае myenv
автоматически активируется, когда я запускаю контейнер, но мне не удается активировать его во время сборки контейнера для установки mypkg
. У меня нет сообщения об ошибке, но пакет установлен в базовом env вместо myenv
.
Bootstrap: docker
From: ubuntu:18.04
%files
myenv.yml
%environment
export LC_ALL=C
export LC_NUMERIC=en_GB.UTF-8
export PATH="/opt/miniconda/bin:$PATH"
export PATH="/opt/miniconda/envs/$(head -1 myenv.yml | cut -d' ' -f2)/bin:$PATH"
%runscript
exec "$@"
%post
# miniconda2: get miniconda2 version 4.5.1
wget https://repo.continuum.io/miniconda/Miniconda2-4.7.12.1-Linux-x86_64.sh -O miniconda.sh
#install conda
bash miniconda.sh -b -p /opt/miniconda
export PATH="/opt/miniconda/bin:$PATH"
#install conda env.yml file
echo ". /opt/miniconda/etc/profile.d/conda.sh" >> $SINGULARITY_ENVIRONMENT
echo "conda activate $(head -1 myenv.yml | cut -d' ' -f2)" >> $SINGULARITY_ENVIRONMENT
/opt/miniconda/bin/conda env create -f myenv.yml
# Activate conda env, clone and install mypkg
. /opt/miniconda/bin/activate myenv &&
git clone https://github.com/mypkg.git &&
cd mypkg&&
python setup.py install