【问题标题】:Edit runscript of singularity .sif container after building构建后编辑奇点 .sif 容器的运行脚本
【发布时间】:2021-06-05 16:42:59
【问题描述】:

我已经构建了一个奇点容器并将其上传到我的 HPC 服务。

有没有办法在不重建整个容器的情况下更改 .sif 文件的运行脚本?我在服务上有一个 shell。

根据我对奇点的理解,这应该是可能的,但我不知道如何。

【问题讨论】:

    标签: containers hpc


    【解决方案1】:

    您可以编辑文件<YOUR_CONTAINER.sif>/singularity,因为它包含运行脚本。

    对于文件<YOUR_CONTAINER.sif>/environment 的环境也可以这样做。

    【讨论】:

    • 如何在 sif 容器中编辑文件?
    • .sif 容器只是一个文件夹。您可以cd <YOUR_CONTAINER.sif>,然后使用像 nano 这样的文本编辑器来编辑文件:nano singularity。我使用命令sudo singularity build --sandbox <YOUR_CONTAINER.sif> <YOUR_CONTAINER.def> 来获取容器。我认为这就是为什么容器就像一个目录。
    • 我的容器是在没有--sandbox 的情况下构建的,所以它是一个文件而不是文件夹。
    【解决方案2】:

    您可以将 SIF 文件转换为(可写)沙箱,该沙箱确实是一个目录:

    sudo singularity build --sandbox <SANDBOX> <CONTAINER>.sif

    然后你可以“进入”沙箱并在那里修改东西(注意--writable标志和sudo的需要):

    sudo singularity shell --writable <SANDBOX>

    或者您可以按照 Quentin 的建议编辑 <SANDBOX>/singularity<SANDBOX>/environment

    一旦您对更改感到满意,您就可以将沙盒转换回(新)SIF 文件:

    sudo singularity build <NEW_CONTAINER>.sif <SANDBOX>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多