Apptainer 将 Ubuntu 本地 Conda 环境打包为 Singularity(SIF)镜像

在 HPC 或服务器环境中,Singularity / Apptainer 是替代 Docker 的事实标准。

本文将演示本地 Ubuntu 系统上的 Conda 环境 打包成一个 .sif 镜像的示例代码。

本文目标:

  • 系统:Ubuntu 22.04 LTS

  • 容器工具:Apptainer

  • Conda:Miniconda / Conda 环境

  • 镜像源:腾讯云 Docker Hub 镜像

  • 输出:finale_env.sif

准备 Conda 环境(宿主机)

1️⃣ 已存在 Conda 环境

示例环境路径:

/home/zheng/miniconda3/envs/finale_env


2️⃣ 导出 environment.yml(可选,但强烈建议)

conda activate finale_env conda env export > environment.yml

用于 版本记录 & 未来重建


3️⃣ 使用 conda-pack 打包环境(关键)

conda activate finale_env conda install -y conda-pack conda-pack \ -n finale_env \ -o finale_env.tar.gz

生成文件:

finale_env.tar.gz


编写 Apptainer.def 文件(核心)

使用腾讯云 Ubuntu 22.04 镜像

Bootstrap: docker From: ccr.ccs.tencentyun.com/library/ubuntu:22.04


完整 Apptainer.def 示例

复制代码
Bootstrap: docker
From: ccr.ccs.tencentyun.com/library/ubuntu:22.04

%files
    finale_env.tar.gz /opt/finale_env.tar.gz

%post
    apt-get update && apt-get install -y \
        ca-certificates \
        bzip2 \
        libglib2.0-0 \
        libxext6 \
        libsm6 \
        libxrender1 \
        libstdc++6 \
        libgcc-s1 \
        && rm -rf /var/lib/apt/lists/*

    mkdir -p /opt/finale_env
    tar -xzf /opt/finale_env.tar.gz -C /opt/finale_env

    /opt/finale_env/bin/python /opt/finale_env/bin/conda-unpack

%environment
    export CONDA_DEFAULT_ENV=finale_env
    export PATH=/opt/finale_env/bin:$PATH
    export LD_LIBRARY_PATH=/opt/finale_env/lib:$LD_LIBRARY_PATH
    export PYTHONNOUSERSITE=1

%runscript
    echo "[Apptainer] Conda env: finale_env"
    exec "$@"

构建 Singularity(SIF)镜像

sudo apptainer build finale_env.sif Apptainer.def

构建成功后生成:

finale_env.sif


测试镜像是否正确(必做)

1️⃣ Python 路径

apptainer exec finale_env.sif which python

apptainer exec finale_env.sif which finaletoolkit

相关推荐
会喷火才能叫火山2 小时前
本地搭建AI相关步骤
linux·运维·ai·centos
齐齐大魔王2 小时前
虚拟机网络无法连接
linux·网络·c++·python·ubuntu
_OP_CHEN2 小时前
【MySQL数据库基础】(六)MySQL 表的约束详解:从基础到实战,拿捏数据合法性!
linux·数据库·mysql·c/c++·表约束·mysql表
淮北4942 小时前
tmux使用指南
linux·python·html·tmux·md
杨云龙UP3 小时前
Oracle DG / ADG日常巡检操作指南
linux·运维·服务器·数据库·ubuntu·oracle
L_09073 小时前
【Linux】进程控制
linux·运维·服务器
weixin_446260853 小时前
小而强大的文件系统,大大提高微控制器的稳定性
linux·服务器·网络
ChengQianO4 小时前
从 0 开始:Mac 下 UTM 虚拟机安装 ROS Noetic(Ubuntu 20.04)
linux·ubuntu·macos
深念Y4 小时前
旧物新生:用魅蓝Note5 root后搭建家用Linux服务器(部署宝塔/AList/QB)
linux·运维·服务器·手机·diy·魔改·魅族
bing_feilong4 小时前
Jetson Orin Nano(7): ubuntu22.04安装chromium
ubuntu