| # Introduction | |
| I explain here how to use Singularity with Docker images (on Fedora) if ti is needed. | |
| # Install Singularity on Fedora | |
| I had to install these dependencies: | |
| ``` | |
| dnf install libarchive-devel | |
| dnf install squashfs-tools | |
| ``` | |
| Then follow [Quick installaton steps](https://www.sylabs.io/guides/2.6/user-guide/quick_start.html#quick-installation-steps) from Singularity 2.6 docs: | |
| ``` | |
| git clone https://github.com/sylabs/singularity.git | |
| cd singularity | |
| git fetch --all | |
| git checkout 2.6.0 | |
| ./autogen.sh | |
| ./configure --prefix=/usr/local | |
| make | |
| sudo make install | |
| ``` | |
| # Build a Singularity image from a local Docker image: | |
| The Docker image has to put on a registry for Singularity to use it. Usually this is the Docker hub registry but you can use a local one too: | |
| Create local registry: | |
| ``` | |
| docker run -d -p 5000:5000 --restart=always --name registry registry:2 | |
| ``` | |
| Push local docker container to it: | |
| ``` | |
| docker tag <image_name> localhost:5000/<image_name> | |
| docker push localhost:5000/<image_name> | |
| ``` | |
| Create a Singularity def file: | |
| ``` | |
| Bootstrap: docker | |
| Registry: http://localhost:5000 | |
| Namespace: | |
| From: <image_name> | |
| ``` | |
| Build singularity image: | |
| ``` | |
| sudo SINGULARITY_NOHTTPS=1 singularity build <image_name>.simg Singularity | |
| ``` | |
| # Send image to cluster | |
| ``` | |
| scp <image_name>.simg nef-devel:<target_path> | |
| scp frame-field-learning_1.2.simg nef-devel:frame_field_learning/singularity/ | |
| ``` |