我已经将一个镜像从docker hub部署到Singularity2.6.0中,并运行容器,如下所示。
singularity run -B ~/path-to-mount/:/home ~/oqfe_latest.sif -1 /home/file_R1.fastq.gz -2 /home/file_R2.fastq.gz --sample sid1
在容器上运行时,该工具下载一个文件并解压缩,然后尝试删除原始文件,但无法删除,并显示以下错误:
rm -rf /data/GRCh38_full_analysis_set_plus_decoy_hla.tar.gz
rm: cannot remove '/data/GRCh38_full_analysis_set_plus_decoy_hla.tar.gz': Read-only file system
Traceback (most recent call last):
File "/oqfe", line 528, in <module>
args.cram_reference_fasta)
File "/oqfe", line 486, in main
bwa_reference_index_path = _setup_reference(DEFAULT_REFERENCE_TAR_PATH)
File "/oqfe", line 130, in _setup_reference
_run_cmd(cmd)
File "/oqfe", line 110, in _run_cmd
subprocess.check_call(cmd)
File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['rm', '-rf', '/data/GRCh38_full_analysis_set_plus_decoy_hla.tar.gz']' returned non-zero exit status 1.
我使用选项--sandbox构建了容器,不幸的是错误仍然存在。任何帮助都是非常感谢的。
发布于 2021-06-02 10:30:49
为了修改沙箱,必须将--writable
与您的奇点运行/exec/shell命令一起使用。
请注意,为了确保您将拥有适当的权限,请使用the docs recommend running a sandbox as root/with sudo。
作为更广泛的评论,如果您的映像上的数据要被修改,通常更好的做法是在容器运行时安装它,而不是在构建容器时安装它。当它特别大的时候,我也会把它去掉,比如诱饵fasta。奇点图像然后简单地变成软件,以及更小和更容易传输。这当然取决于用例和个人偏好,但我发现它更方便。
https://stackoverflow.com/questions/67728989
复制