问题标签 [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.
singularity-container - 奇点排除某些目录
奇点 -B 用于挂载一些目录,以便可以在奇点容器内使用这些目录。但是,我想排除一些目录。例如,我想使用singularity shell -B /foo/ bar.simg 来访问/foo
但我想在容器中排除 /foo/foo1/ 。有没有办法解决这个问题?
bash - 从 bash 脚本以编程方式运行 `exec`
我想在各种图像中执行命令。我使用一个简单的for
bash 循环。
我希望脚本打印该目录中所有图像的 os-release 信息。相反,它打印第一个的信息并返回提示。如果我运行fg
命令,则执行下一个图像中的命令,依此类推。对于 n 图像,我必须运行fg
命令 n-1 次。
有趣的是,如果我用 替换命令timeout 10 singularity exec $i cat /etc/os-release
,它会继续,但不会在容器内运行命令。
git - 奇点;在用户主目录中获取一个 github 存储库
目标
目的是创建一个安装一些包的奇异容器,然后从 git repo 克隆一个自定义包并制作它。用户需要获得使用自定义包的权限,理想情况下它将位于奇异用户的主目录中,但这似乎比我预期的要困难。
奇点几乎总是以外壳的形式启动,它包含一组麻烦的自定义包,并以可重复、可共享的方式从它们生成结果。
问题
克隆 git repo 似乎很好,但我可以把它放在用户甚至可以看到它的唯一地方/github_repo
,它始终归 root 所有。
我无法将它获取到用户的主目录,因为在%post
变量期间$HOME
似乎没有指向用户的主目录,它指向/root
,然后创建的对象属于 root。事实上,虽然/home
确实存在,但它是空的,似乎用户还不存在。
我试过克隆/github_repo
然后添加
到%post
. 容器可以构建和运行,以及何时运行;
所以它可以看到文件和文件夹的名称,但看不到它们的权限?我什至不知道这是可能的。如果我不搞乱其中的权限,%post
那么它就是root拥有的一个完全正常的文件。
食谱
这是我到目前为止所拥有的,您应该会发现它可以构建并运行。如果你想运行它,将 recipy 保存为 example.def 然后执行
然后尝试
例子.def
r - 当奇异容器作为实例运行时,闪亮的应用程序不可用
我从 docker image 构建了奇异容器kfoltynski/shinyproxy-demo:singularity
。当我跑
闪亮的应用程序可用localhost:3839
,但在运行奇异容器作为实例之后
它不是。为什么?
重现步骤:
奇点定义/配方文件Singularity.recipe
:
构建奇点图像shiny.simg
:
运行容器:
将容器作为实例运行:
为什么将奇异容器作为实例运行时应用程序不可用?
mpi - 将 MPI 通信与容器化应用程序一起使用
我已经成功地在我的集群上执行了一个程序,使用
我已经my_program
使用 Singularity 进行了容器化并制作了my_program.simg
. 该容器还包括与主机相同版本的 OpenMPI。我想让集群中的节点执行 Singularity 容器,所以我尝试了:
但是,这失败了:
我假设我需要向容器公开一些东西,以便它知道如何与 MPI 世界对话。是否有我需要绑定到容器中的套接字,或者我需要设置的环境变量,或者类似的东西?
Singularity 文档表明无需额外操作。
这个 GitHub issue可能有很好的建议,我会尝试的。
bash - 奇点中不合逻辑的“不良替代”
问题
我的奇点容器中的一个包中的一个配置脚本包含这个(对我来说)完全合理的 bash 来修剪/
路径的尾随;
它在我的机器上本地运行良好,但是当从%post
奇异容器的部分运行时,它会以Bad substitution
. 出了什么问题,正确的解决方法是什么?
最小的工作示例
将下面的文本另存为badSubs.def
然后尝试;sudo singularity build badSubs.sif badSubs.def
.
conda - 在 Nextflow 中执行 Singularity 容器时激活 conda 环境
我正在使用 Singularity 容器从 Nextflow 工作流管理系统运行命令。我在 Singularity 中有一个 conda 环境,当我进入容器时可以激活它
当 Nextflow 执行时,我已经定义了source activate pcgr
我认为应该激活 conda env 的位置。但我收到unbound variable HOST
警告。我认为这与不激活和随后使用如果环境被激活(?)应该定义的变量有关。
我希望容器在执行时激活 env (pcgr)。我试过了
和
但这对我不起作用
我看不出这是如何完成的,但假设这很容易而且我在很大程度上忽略了一些东西!
帮助表示赞赏。
python-3.x - 如何在 Visual Studio 代码中的奇异点/docker 图像中使用 python 解释器
我希望能够在 Visual Studio 代码的奇点图像中使用 python 解释器。
似乎将 VSC 指向 python 解释器的所有选项都涉及直接路径,但在图像中使用 python 需要一个命令:
我试着把它放在 VSC settings.json 文件中:
没有运气,从 VSC 运行任何 python 代码在这里使用 python 解释器:/usr/bin/python3
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”容器的操作系统版本的信息。实际结果是一个失败的工作。如果我检查
我得到错误:
有同样问题的人吗?
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?
谢谢