En una entrada anterior intenté explicar cómo crear una imagen Singularity para ejecutar el software Macaulay2 (M2) en un contenedor (tipo Docker pero usando Singularity). En esta nueva entrada explico lo mismo, pero con dos mejoras:

  1. usando la versión más reciente de M2, disponible para Debian gracias a Doug Torrance: https://people.debian.org/~dtorrance/.

  2. compilando la imagen Singularity directamente en el servidor de Sylabs. Esto tiene dos ventajas: no precisamos una computadora con acceso de superusuario para compilar de forma local, y además la imagen queda automáticamente subida al servidor para ser compartida.

Para lograr esto ingresamos a nuestra cuenta en https://cloud.sylabs.io, y vamos a la sección “Remote builder”. En el editor de texto que aparece, copiamos el “archivo de definición” de la imagen que queremos compilar. En este caso:

Bootstrap: docker
From: debian:12

%post
	apt update && apt -y upgrade

	apt -y install ca-certificates
	apt -y install debian-keyring

	echo 'deb \[signed-by=/usr/share/keyrings/debian-keyring.gpg] https://people.debian.org/~dtorrance/debian bookworm/' | tee -a /etc/apt/sources.list

	apt update

	apt -y install macaulay2

%runscript
	M2

%labels
	Author mvaldes
	Version v1.24.11

En esa misma página elegimos el nombre de nuestro repositorio, que en este ejemplo es: /macaulay2/m2-v1.24.11.

Finalmente le damos click a “Submit build”. Esto hace que el servidor de Sylabs comience a crear una imagen Singularity en base al archivo de definición.

Después de 21 minutos se termina de crear la imagen y queda disponible para que otras personas puedan descargarla y así poder usar la versión más reciente de M2 en un contenedor.

Sylabs Remote Build
Remote Build en el servidor de Sylabs.

Por ejemplo, para descargar la imagen desde el servidor, ejecutamos lo siguiente desde la computadora donde querramos usarla:

$ singularity pull --arch amd64 library://mvaldes/macaulay2/m2:v1.24.11

Una vez descargada la imagen, podemos usarla para ejecutar M2 desde un contenedor de Singularity:

$ singularity shell m2_v1.24.11.sif 
Singularity> M2

Referencias

  1. Macaulay2 Debian Personal Package Archive. Doug Torrance. enlace