问题标签 [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.
python-3.x - 如何在执行时在 Singularity 容器中设置 Python 别名?
我一直在尝试在我的容器中设置一些别名,但我无法成功。在构建我放入的容器alias python3=python3.6
时%post
,一切正常;别名已正确声明并在整个容器构建过程中使用。
但是,在构建容器并执行它之后,使用singularity exec
中的别名声明%environment
or%runscript
不起作用。我还尝试将别名声明命令放在容器中的 bash 脚本中并运行 bash 脚本,但它仍然不起作用。基本上,我认为我看起来像Docker 中的ENTRYPOINT for Singularity。有谁知道我做错了什么以及如何在容器中设置别名?
我正在使用奇点 2.6。
这是我正在使用的定义文件:
containers - 如何优雅地分离奇点容器?
根据您使用C-p C-q
或C-ad
大部分时间工作的容器类型,但似乎并不能优雅地分离容器。
virtual-machine - 如何在 Singularity 容器中启动 VM?
所以我想吐出一个Windows.iso
我在集群节点上使用奇点图像。我试过VirtualBox但得到了这个异常:
请注意,奇点映像不能有 sudo,因此所有准备工作都在 Docker 映像中完成,我从中创建了一个奇点映像
dask - 在 Singularity 容器中运行 Dask
我一直在尝试通过https://www.youtube.com/watch?v=FXsgmwpRExM上给出的 HPC 环境中的 Dask 教程。
我已经设法在 Singularity 映像中安装了我需要的所有软件包,然后使用以下命令在 LSF 集群上运行该映像:bsub -ISs -q "par-multi" -J "ipy_test" -n 16 singularity shell container.img
之后,我使用简单的ipython
命令启动 ipython,然后使用 dask_jobqueue 导入 LSFClusterfrom dask_jobqueue import LSFCluster
然后,我通过调用设置了我的测试集群,cluster = LSFCluster(cores=2, memory="1 GB")
并通过调用设置了 2 个工作人员cluster.scale(2)
,此时我得到以下堆栈跟踪:
tornado.application - 错误 - 回调 Traceback 中的异常(最近一次调用最后一次):文件“/usr/lib64/python2.7/site-packages/tornado/ioloop.py”,第 758 行,在 _run_callback ret = callback() 文件中“/usr/lib64/python2.7/site-packages/tornado/stack_context.py”,第 300 行,在 null_wrapper 返回 fn(*args, **kwargs) 文件“/usr/lib/python2.7/site-packages /dask_jobqueue/core.py”,第 416 行,在 scale_up self.start_workers(n - self._count_active_and_pending_workers()) 文件“/usr/lib/python2.7/site-packages/dask_jobqueue/core.py”,第 330 行,在 start_workers out = self._submit_job(fn) 文件“/usr/lib/python2.7/site-packages/dask_jobqueue/lsf.py”,第 114 行,在 _submit_job 返回 self._call(piped_cmd, shell=True) 文件“ /usr/lib/python2.7/site-packages/dask_jobqueue/core.py", line 383, in _call cmd_str, out, err)) RuntimeError: Command exited with non-zero exit code. Exit code: 127 Command: bsub < /tmp/tmpipG68P.sh 2> /dev/null 标准输出:标准错误:
有人知道我可能会出错吗?
谢谢。
docker - 如何使用 Singularity 3 构建/运行具有可写文件系统的容器?
我正在使用 Singularity 3.0 并尝试从 DockerHub 中提取容器映像并在大学集群上运行它。我按照这个食谱开始了。
容器进程启动,但是当我尝试通过浏览器连接时,我收到以下错误日志。
似乎容器中的文件系统只是只读的。如何构建(或运行)容器以使容器的文件系统可写?
更新:
我能够让 RStudio Server 在大学集群上运行,如下所示。
这似乎可行,因为 Singularity 会自动将主机上的用户主目录挂载到容器中,并且我将我的主目录重新定义为my-project-directory
在上面。
但是我仍然无法将 R 包安装到容器中,因为文件系统不可写。
最初的问题仍然存在:如何创建具有可写文件系统的 Singularity 3.* 容器?如果这是不可能的,将不胜感激解释为什么。
docker - 如何使用奇异性运行 docker 映像?
我想运行一个具有奇异性的 docker 映像(我也从未使用过)。
制作 docker 镜像的人建议将终端 shell 定位到文件(用作 docker 镜像的输入)所在的位置,然后执行以下操作:
docker run -v ${PWD}:/DATA -w /DATA -i image/myimage -specifications
当我省略${PWD}:/DATA -w /DATA
并指示输入文件和 docker 图像的路径时,我可以使用奇异性运行此图像。但我更愿意像上面的例子那样运行它。有人可以告诉我如何使用奇点来做到这一点吗?我看到这singularity run --bind
可能是一种方法,但无法弄清楚如何。我知道这是非常基础的,但我才刚刚开始学习。谢谢!
cmake - 在构建失败后清理映像之前捕获由奇点映像中的 cmake 生成的日志文件
我正在使用 Singularity (v. 2.5.1) 配方文件构建应用程序。在某些时候,它在构建过程中失败,cmake
失败并将错误写入奇点映像中的日志文件。
要构建图像:
构建的标准输出输出(打印到终端)的结尾是:
问题在于,由于奇点映像构建失败,因此没有用于调查日志的映像。
问题:当映像本身无法构建时,如何保留构建过程中的日志或文件?也许cmake中有一种方法可以将输出从CMakeOutput.log重定向到stdout?
singularity-container - 将脚本的输出写入奇点
我无法通过奇点运行脚本的输出。
我有一个 python 脚本,在其末尾保存输出:
我想在一台远程机器上运行这个脚本。由于我正在学习奇异性,因此我在目录中制作了一个“沙盒”debian 映像(尚未编译为单个“img”文件)/tmp/debian
;test.py
在这张图片中,我复制了 python 脚本/usr/src
并使用以下命令运行它:
问题:
只要我只显示结果,它就可以很好地工作。对于上面描述的泡菜示例,我在任何地方都没有得到任何saveOut.pkl
文件:这个文件只是没有写在任何地方,但我没有看到任何消息。我试图在 python 脚本中编写一个显式路径。例如/usr/src/saveOut.pkl
,但这是一样的。
我怎么能写出结果?
您预期的结果是什么,即您希望在哪个目录中找到输出文件?
我希望在saveOutput.pkl
任何地方都有一个文件,无论是否在容器中,我不在乎位置。目前我根本不明白:既不是在容器的当前目录中,也不是在容器的 中/usr/src/
,也不是在主机上,也不是在任何地方。
你是在主机上还是在容器里找的?
两个,我在任何地方都看不到
python - 如何使用奇点图像运行 jupyter 笔记本?
我已经构建了一个包含最新 anaconda 版本的奇点映像(jupyter.sif),我想用它来运行一个 jupyter 笔记本。
我想运行这样的东西:
本质上,只需启动一个普通的 jupyter notebook,它将使用 python 版本和安装在奇异图像中的包。理想情况下,笔记本将在图像之外读取和写入文件(因此我指定了绑定路径)。
但是,当我运行上述命令时,出现以下错误:
我认为这是因为笔记本正在尝试在图像中写入内容,并且因为我没有将图像作为 sudo 运行(我不想这样做),而且我在执行图像时也没有指定 --writable (也不想这样做),它抱怨无法在图像中写入。
有没有办法“告诉”图像在我的主目录而不是图像内部读取和写入文件?
谢谢
conda - 在 Singularity 容器中容器化 conda 环境
我遇到过几个实例,其中容器化 conda 环境以实现长期可重复性非常有帮助。由于我通常在高性能计算系统中运行,出于安全原因,它们需要是 Singularity 容器。如何才能做到这一点?