问题标签 [singularity-container]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
139 浏览

singularity-container - 奇点排除某些目录

奇点 -B 用于挂载一些目录,以便可以在奇点容器内使用这些目录。但是,我想排除一些目录。例如,我想使用singularity shell -B /foo/ bar.simg 来访问/foo

但我想在容器中排除 /foo/foo1/ 。有没有办法解决这个问题?

0 投票
1 回答
246 浏览

bash - 从 bash 脚本以编程方式运行 `exec`

我想在各种图像中执行命令。我使用一个简单的forbash 循环。

我希望脚本打印该目录中所有图像的 os-release 信息。相反,它打印第一个的信息并返回提示。如果我运行fg命令,则执行下一个图像中的命令,依此类推。对于 n 图像,我必须运行fg命令 n-1 次。

有趣的是,如果我用 替换命令timeout 10 singularity exec $i cat /etc/os-release,它会继续,但不会在容器内运行命令。

0 投票
1 回答
805 浏览

git - 奇点;在用户主目录中获取一个 github 存储库

目标

目的是创建一个安装一些包的奇异容器,然后从 git repo 克隆一个自定义包并制作它。用户需要获得使用自定义包的权限,理想情况下它将位于奇异用户的主目录中,但这似乎比我预期的要困难。

奇点几乎总是以外壳的形式启动,它包含一组麻烦的自定义包,并以可重复、可共享的方式从它们生成结果。

问题

克隆 git repo 似乎很好,但我可以把它放在用户甚至可以看到它的唯一地方/github_repo,它始终归 root 所有。

我无法将它获取到用户的主目录,因为在%post变量期间$HOME似乎没有指向用户的主目录,它指向/root,然后创建的对象属于 root。事实上,虽然/home确实存在,但它是空的,似乎用户还不存在。

我试过克隆/github_repo然后添加

%post. 容器可以构建和运行,以及何时运行;

所以它可以看到文件和文件夹的名称,但看不到它们的权限?我什至不知道这是可能的。如果我不搞乱其中的权限,%post那么它就是root拥有的一个完全正常的文件。

食谱

这是我到目前为止所拥有的,您应该会发现它可以构建并运行。如果你想运行它,将 recipy 保存为 example.def 然后执行

然后尝试

例子.def

0 投票
1 回答
335 浏览

r - 当奇异容器作为实例运行时,闪亮的应用程序不可用

我从 docker image 构建了奇异容器kfoltynski/shinyproxy-demo:singularity。当我跑

闪亮的应用程序可用localhost:3839,但在运行奇异容器作为实例之后

它不是。为什么?

重现步骤:

Dockerfile

奇点定义/配方文件Singularity.recipe

构建奇点图像shiny.simg

运行容器:

将容器作为实例运行:

为什么将奇异容器作为实例运行时应用程序不可用?

0 投票
0 回答
276 浏览

mpi - 将 MPI 通信与容器化应用程序一起使用

我已经成功地在我的集群上执行了一个程序,使用

我已经my_program使用 Singularity 进行了容器化并制作了my_program.simg. 该容器还包括与主机相同版本的 OpenMPI。我想让集群中的节点执行 Singularity 容器,所以我尝试了:

但是,这失败了:

我假设我需要向容器公开一些东西,以便它知道如何与 MPI 世界对话。是否有我需要绑定到容器中的套接字,或者我需要设置的环境变量,或者类似的东西?

Singularity 文档表明无需额外操作。

这个 GitHub issue可能有很好的建议,我会尝试的。

0 投票
2 回答
568 浏览

bash - 奇点中不合逻辑的“不良替代”

问题

我的奇点容器中的一个包中的一个配置脚本包含这个(对我来说)完全合理的 bash 来修剪/路径的尾随;

它在我的机器上本地运行良好,但是当从%post奇异容器的部分运行时,它会以Bad substitution. 出了什么问题,正确的解决方法是什么?

最小的工作示例

将下面的文本另存为badSubs.def然后尝试;sudo singularity build badSubs.sif badSubs.def.

0 投票
1 回答
1621 浏览

conda - 在 Nextflow 中执行 Singularity 容器时激活 conda 环境

我正在使用 Singularity 容器从 Nextflow 工作流管理系统运行命令。我在 Singularity 中有一个 conda 环境,当我进入容器时可以激活它

当 Nextflow 执行时,我已经定义了source activate pcgr我认为应该激活 conda env 的位置。但我收到unbound variable HOST警告。我认为这与不激活和随后使用如果环境被激活(?)应该定义的变量有关。

我希望容器在执行时激活 env (pcgr)。我试过了

但这对我不起作用

我看不出这是如何完成的,但假设这很容易而且我在很大程度上忽略了一些东西!

帮助表示赞赏。

0 投票
1 回答
1435 浏览

python-3.x - 如何在 Visual Studio 代码中的奇异点/docker 图像中使用 python 解释器

我希望能够在 Visual Studio 代码的奇点图像中使用 python 解释器。

似乎将 VSC 指向 python 解释器的所有选项都涉及直接路径,但在图像中使用 python 需要一个命令:

我试着把它放在 VSC settings.json 文件中:

没有运气,从 VSC 运行任何 python 代码在这里使用 python 解释器:/usr/bin/python3

0 投票
0 回答
569 浏览

kubernetes - 带有 --kubernetes 选项的 AWS eks 上的蛇形工作流中的局部奇点图像

我正在尝试在 AWS EKS 上使用 Snakemake,在奇异容器中运行 shell 命令。如果我理解正确的话,Snakemake 然后由 kubernetes 作为容器本身运行,所以我会在 Pod 中运行一个奇异容器。我在 Snakefile 的同一文件夹中有一个 ubuntu 图像。如何告诉 Singularity 图片的存储路径?

我尝试运行在 DockerHub 中指定图像的工作流,它运行良好。但是,如果我指定 --kubernetes 标志,我无法使其与存储在我的 EC2 实例中的图像一起使用(如果我在没有 --kubernetes 的情况下运行它,它也可以与本地图像完美运行)。我尝试在 EC2 实例上指定图像的路径,但它不起作用。

我的 Snakefile 看起来像这样:

我使用以下命令运行 Snakemake:

所需的输出是在指定的 s3 存储桶中创建的文件“out.txt”,其中包含有关“ubuntu.sigm”容器的操作系统版本的信息。实际结果是一个失败的工作。如果我检查

我得到错误:

有同样问题的人吗?

0 投票
2 回答
4067 浏览

driver - 在奇异容器中安装驱动程序后,nvidia-smi 无法正常工作

我使用奇点,我需要在我的奇点容器中安装一个 nvidia 驱动程序,以便使用 gtx 1080 进行一些深度学习。这个奇点图像是从这里的 nvidia docker 创建的: https ://ngc.nvidia.com/catalog/containers /nvidia:kaldi并转换为奇点容器。我认为没有 nvidia 驱动程序,因为在我安装驱动程序之前未找到 nvidia-smi。

我做了以下命令:

之后我想看看驱动程序是否安装好,我执行了以下命令:

返回:无法初始化 NVML:驱动程序/库版本不匹配

我搜索了如何解决这个错误,发现这个主题: NVIDIA NVML Driver/library version mismatch

一个答案说要执行命令:

然后在除 nvidia 之外的每个上执行 rmmod,最后到 rmmod nvidia。

但是当我这样做时,由于主题除外,我有错误:rmmod:错误:模块nvidia正在使用中。

该主题说要点击 lsof /dev/nvidia*,并终止使用该模块的进程,但我没有看到任何写有 drm 的内容,并且终止进程似乎是一个非常糟糕的主意(Xorg,gnome-she) .

这是命令 lsof /dev/nvidia* 的答案,后面是命令 lsmod | grep nvidia,然后 rmmod drm在此处输入图像描述 重新启动计算机也没有用。

我应该怎么做才能使用 nvidia-smi 进行管理并能够从奇异容器内部使用我的 GPU?

谢谢