来自conda环境的奇异容器

时间:2019-08-29 18:28:24

标签: singularity-container

我想在this post之后从我的conda环境中构建一个容器。但是,出现以下错误:'/ bin / sh:1:无法创建〜/ .bashrc:目录不存在'。我正在使用一个无所事事的VM来构建映像,感谢您的帮助。

1 个答案:

答案 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的,因此您必须遍历直到构建成功。