将conda虚拟环境打包并集成到singularity镜像中
1. 使用yml文件打包
conda activate your_env
conda env export > environment.yml
编写cond.def
文件
Bootstrap: dockerFrom: continuumio/miniconda3%filesenvironment.yml%post/opt/conda/bin/conda env create -f environment.yml%runscriptexec /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: dockerFrom: continuumio/miniconda3%filespacked_environment.tar.gz /packed_environment.tar.gz%posttar xvzf /packed_environment.tar.gz -C /opt/condaconda-unpackrm /packed_environment.tar.gz
生成镜像:
singularity build --fakeroot <OUTPUT_CONTAINER.sif> conda.def