'Edit runscript of singularity .sif container after building
I have build a singularity container and uploaded it to my HPC service.
Is there a way to change the runscript of the .sif file without rebuilding the whole container? I have a shell on the service.
From my understanding of singularity this should be possible but I cant find out how.
Solution 1:[1]
You can edit the file <YOUR_CONTAINER.sif>/singularity as it contains the runscript.
The same can be done for the environment with the file <YOUR_CONTAINER.sif>/environment.
Solution 2:[2]
You can convert a SIF file to a (writable) sandbox which is indeed a directory:
sudo singularity build --sandbox <SANDBOX> <CONTAINER>.sif
Then you can "get into" the sandbox and modify things there (note the --writable flag and the need for sudo):
sudo singularity shell --writable <SANDBOX>
Or you can edit <SANDBOX>/singularity or <SANDBOX>/environment as suggested by Quentin.
Additional goodies can be found in the <SANDBOX>/.singularity.d directory. Such as the Singularity file which is the recipe the container was built from.
Once you are happy with the changes you can convert the sandbox back to a (new) SIF file:
sudo singularity build <NEW_CONTAINER>.sif <SANDBOX>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Quentin Possamaï |
| Solution 2 |
