美文网首页编程学习
singularity环境变量

singularity环境变量

作者: myshu | 来源:发表于2024-09-26 15:34 被阅读0次

参考:

首先可以先运行如下命令,看下当前镜像中的所有环境变量:

singularity exec env.sif env

HOME=/home/dave
LANG=C
LD_LIBRARY_PATH=/.singularity.d/libs
PATH=/startpath:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PROMPT_COMMAND=PS1="Singularity> "; unset PROMPT_COMMAND
PS1=Singularity>
PWD=/home/dave/doc-tesrts
SINGULARITY_COMMAND=exec
SINGULARITY_CONTAINER=/home/dave/doc-tesrts/env.sif
SINGULARITY_ENVIRONMENT=/.singularity.d/env/91-environment.sh
SINGULARITY_NAME=env.sif
TERM=xterm-256color

其中常见的变量有这些

  • SINGULARITY_COMMAND how the container was started, e.g. exec / run / shell
  • SINGULARITY_CONTAINER the full path to the container image.
  • SINGULARITY_ENVIRONMENTpath inside the container to the shell script holding the container image environment settings.
  • SINGULARITY_NAMEname of the container image, e.g.myfile.sif or docker://ubuntu
  • SINGULARITY_BINDa list of bind paths that the user requested, via flags or environment variables, when running the container.

我们使用比较多的应该就是SINGULARITY_ENVIRONMENTSINGULARITY_BIND分别用于设置环境变量和bind 路径

设置/修改镜像中的环境变量,有如下几种方式。

1、在def文件中设置环境变量

def文件可以从一个现有的sif文件中构建镜像,可以在构建的过程中直接设置好环境变量。

%environment
export VARIABLE_NAME=value

示例:

%environment
    export LC_ALL=zh_CN.UTF-8  #C  这里可以兼容上特殊字符
    export PATH=/miniconda3/bin:$PATH

此外,如果你想要在构建过程中根据条件设置环境变量,你可以在%post 部分使用 shell 脚本来设置它们:

%post
echo "Setting environment variables"
export MY_ENV_VAR=some_value
echo "MY_ENV_VAR=$MY_ENV_VAR" >> /environment

示例:

%post
     echo ". /miniconda3/etc/profile.d/conda.sh" >>  $SINGULARITY_ENVIRONMENT
     echo "source /miniconda3/bin/activate st_seurat_v4" >> $SINGULARITY_ENVIRONMENT
     echo "export R_USER_CACHE_DIR=/miniconda3/envs/test/wget_lib/" >> $SINGULARITY_ENVIRONMENT  # /.singularity.d/env/91-environment.sh

这里的$SINGULARITY_ENVIRONMEN对应的就是/.singularity.d/env/91-environment.sh

这个文件下文会讲到,是镜像环境中的一个环境变量设置文件。

2、在.singularity.d/文件夹设置环境变量

如果是使用容器构建镜像,则需要在Singularity容器中进行环境变量的设置。

/.singularity.d/env/ 目录是一个特殊的目录,用于存储环境变量文件。这些文件在容器启动时按照顺序被自动执行,以设置或修改环境变量。以下是一些常见的文件:

  1. 01-base.sh:
    通常用于设置基础环境变量,而其他以90-, 99-开头的脚本文件可能会设置更具体的环境变量或应用特定的配置。
  2. 90-environment.sh
    这是一个环境变量文件,通常用于设置<u>容器启动时的环境变量</u>。你可以在这个文件中添加任何需要的环境变量。对应的是def中%environment中的变量
  3. 91-environment.sh
    类似于 90-environment.sh。是def文件在%post中设置到$SINGULARITY_ENVIRONMEN的变量
  4. 94-appsbase.sh:
    这个文件可能用于设置与容器内特定应用程序相关的环境变量,如应用程序的安装路径、配置文件路径等。
  5. 95-apps.sh
    类似于94-appsbase.sh,这个文件可能用于设置其他应用程序的环境变量或执行应用程序特定的环境配置。
  6. 99-base.sh:
    这个文件可能用于设置一些最终的环境变量或执行最后的清理工作,这些工作在容器启动前完成。

3、在命令行设置环境变量

在Singularity 3.6之后的版本,可以使用 --env--env-file 在运行的命令行中设置环境变量。
示例:

singularity run --env MYVAR=Goodbye env.sif

相关文章

  • Singularity入门之乱七八糟

    配置文件路径 singularity.conf: /etc/singularity/singularity.con...

  • Singularity 使用指南

    singularity 官网: https://singularity.lbl.gov/ 进入容器 singul...

  • 2018-07-19 singularity 使用

    singularity is awesome! singularity 类似docker,和docker不同的一点...

  • singularity

    一、singularity 安装 通过以下命令可以安装singularity git clone https://...

  • singularity

    singularity 安装 安装依赖 在ubuntu上 在centos上 安装Go Singularity 3....

  • SINGULARITY

    一群 追日的早鳥 一個 呼嚕的瑪吉 一條 甦醒的海岸 一場 即興的旅行 呼嘯 快轉的車輪 伴隨 春意的藍夜 攜手 ...

  • singularity

  • singularity

    画了泰亨的singularity里自己最喜欢的照片 嗯 花了忙长时间但挺值得

  • Singularity入门之运行容器

    下载已存在镜像 和Docker类似,要运行 Singularity 也需要先获取镜像,Singularity 可以...

  • Singularity升级

    卸载旧版本 以前装的Singularity版本比较低,最近要用新功能,只能升级了。因为以前Singularity安...

网友评论

    本文标题:singularity环境变量

    本文链接:https://www.haomeiwen.com/subject/toqfrjtx.html