来自 conda 环境的奇点容器

Singularity container from conda environment

我想在 之后从我的 conda 环境构建一个容器。但是,我收到以下错误:“/bin/sh: 1: 无法创建 ~/.bashrc: 目录不存在”。我正在使用 vagrant VM 来构建我的映像,如果有任何帮助,我将不胜感激。

编辑 .bashrc 除了失败之外没有任何帮助,因为奇点加载的 shell 明确是 --norc。您想在 %post 中使用 $SINGULARITY_ENVIRONMENT 变量以获得可用的值。

大致如下:

%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

我列出了一些您可能已安装在当前计算机中的库,这些库可能未安装在 slim docker 映像中。您可以根据自己的喜好通过 apt 或 conda 安装它们。如果它确实发生了,它将特定于您的 environment.yml 和主机 OS,因此您必须迭代直到构建成功。