Hi, I am currently developing a Dagger CI pipeline to build, test, and push Docker images that will be used on HPC.
It is very common for HPC centers to provide Singularity/Apptainer instead of Docker, due to better security guarantees and improved integration with the SW stack provided by the HPC.
At the moment, every time I build a new Docker image, I pull it on the HPC and convert it to a Singularity image. Example: singularity pull ubuntu.sif docker://ubuntu:latest
The command above pulls (quick) and converts (slow) the Docker image to a SIF (Singulartity Image File).
The worst part is when this operation is done within a job allocation, as some compute time will be "wasted" to do the conversion. To streamline the process, I would like to perform the Docker to SIF conversion in my CI pipeline managed by Dagger... Has any of you ever done that?
Naively I would look for a Docker container with Singularity installed and run the conversion inside it, having the whole process managed by Dagger... However, | was wondering whether this would be the best way to go. Also, that's just an intuition which I never tested, and it may not even work.
Also, I don't want to open the Pandora's box here ๐ , but have you ever considered some degree of support for Singularity/Apptainer in Dagger?
๐
Love it, definitely my next item on the list