我正在尝试构建一个安装了nextflow的奇异容器。完成构建后,我将其安装在目录中,并将其安装为ROOT。当我尝试运行容器时,由于我不是root用户,因此失败。我查看了最佳做法,并显示以下内容:
始终将软件包,程序,数据和文件安装到操作系统位置(例如,不是/ home,/ tmp或其他可能经常绑定的目录)。
我的def文件:
BootStrap: yum
OSVersion: 7
MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/$basearch/
Include: yum
%post
yum -y install java-1.8.0-openjdk-headless
yum -y install wget
yum -y install which
mkdir /s2fast
cd /s2fast
wget -qO- https://get.nextflow.io | bash
%runscript
exec /s2fast/nextflow
运行它使我“权限被拒绝” 我正在执行奇点3.4.0-1
不确定我是否应该使用绑定路径,覆盖图或其他东西?
答案 0 :(得分:1)
如果您的容器仅需要Nextflow,我是否建议使用quay.io中的Nextflow生物容器?
singularity pull docker://quay.io/biocontainers/nextflow:19.07.0--hecc5488_0
如果您需要与Nextflow一起安装其他应用程序,通常会将其安装到/usr/local/bin
中。但是,使用自定义目录路径(如您所做的)并没有错。无论如何,您都需要确保这些应用具有必要的权限。只需将chmod 755 /s2fast/nextflow
添加到您的%post部分。同时删除您的%runscript部分。除非需要处理命令行参数,否则通常不需要它。