我想在this post之后从我的conda环境中构建一个容器。但是,出现以下错误:'/ bin / sh:1:无法创建〜/ .bashrc:目录不存在'。我正在使用一个无所事事的VM来构建映像,感谢您的帮助。
答案 0 :(得分:1)
除了失败之外,编辑.bashrc
将无济于事,因为由奇异性加载的shell是显式--norc
。您想使用$SINGULARITY_ENVIRONMENT
中的%post
变量来获得可用的值。
遵循以下原则:
%post
# You may need to install some pre-reqs your host system has installed outside of conda, e.g.
# apt update && apt install -y build-essential make zlib
ENV_NAME=$(head -1 environment.yml | cut -d' ' -f2)
echo ". /opt/conda/etc/profile.d/conda.sh" >> $SINGULARITY_ENVIRONMENT
echo "conda activate $ENV_NAME" >> $SINGULARITY_ENVIRONMENT
. /opt/conda/etc/profile.d/conda.sh
conda env create -f environment.yml -p /opt/conda/envs/$ENV_NAME
我列出了一些您可能已安装在当前计算机中的库,这些库可能未安装在苗条docker映像中。您可以根据自己的喜好通过apt或conda安装它们。如果确实发生了,那将是特定于您的environment.yml和主机OS的,因此您必须遍历直到构建成功。