首页 > 解决方案 > 奇点无法删除文件夹,只读文件系统

问题描述

我已将 docker hub 中的映像部署到奇异 2.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 构建了容器,不幸的是错误仍然存​​在。任何帮助表示赞赏。

标签: singularity-container

解决方案


为了修改沙箱,您必须使用--writable您的奇异运行/执行/外壳命令。

请注意,为确保您将拥有适当的权限,文档建议以 root/with sudo 身份运行沙箱


作为更广泛的评论,如果要修改图像上的数据,通常最好在容器运行时而不是在构建时将其挂载。当它特别大时,我也会把它放在外面,就像诱饵fasta一样。奇点图像然后简单地变成软件,并且更小更容易传输。这当然取决于用例和个人偏好,但我发现它更方便。


推荐阅读