将conda虚拟环境打包并集成到singularity镜像中

1. 使用yml文件打包

conda activate your_env
conda env export > environment.yml

编写cond.def文件

Bootstrap: docker

From: continuumio/miniconda3

%files
    environment.yml

%post
    /opt/conda/bin/conda env create -f environment.yml

%runscript
    exec /opt/conda/envs/$(head -n 1 environment.yml | cut -f 2 -d ' ')/bin/"$@" 

生成镜像:

singularity build conda.sif conda.def

2. 利用tar包

2.1 安装conda-pack

pip install conda-pack

版本需要0.7以上。

2.2 导出tar包

conda-pack -n <MY_ENV> -o packed_environment.tar.gz

编写conda.def文件:

Bootstrap: docker

From: continuumio/miniconda3

%files
    packed_environment.tar.gz /packed_environment.tar.gz

%post
    tar xvzf /packed_environment.tar.gz -C /opt/conda
    conda-unpack
    rm /packed_environment.tar.gz

生成镜像:

singularity build --fakeroot <OUTPUT_CONTAINER.sif> conda.def

你可能感兴趣的:(conda,python,前端)