about summary refs log tree commit diff
path: root/singularity-worker-deploy.sh
diff options
context:
space:
mode:
Diffstat (limited to 'singularity-worker-deploy.sh')
-rwxr-xr-xsingularity-worker-deploy.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/singularity-worker-deploy.sh b/singularity-worker-deploy.sh
new file mode 100755
index 0000000..d709758
--- /dev/null
+++ b/singularity-worker-deploy.sh
@@ -0,0 +1,37 @@
+#! /bin/sh -xe
+
+##
+## singularity deployment on octopus worker nodes
+##
+
+case $1 in
+    "")
+	echo "Usage: $0 SINGULARITY_STORE_ITEM"
+	exit 1
+	;;
+    *)
+	singularity=$1
+	echo $singularity
+	;;
+esac
+
+# Symlink singularity executable.
+sudo ln --force --symbolic $singularity/bin/singularity /usr/local/bin/singularity
+
+# To set up singularity, we imitate what the Guix
+# singularity-service-type does.
+
+# Install setuid binaries.
+sudo mkdir -p /usr/local/libexec/singularity/bin
+for program in action mount start;
+do
+    sudo cp $singularity/libexec/singularity/bin/$program-suid /usr/local/libexec/singularity/bin/singularity-$program-helper
+    sudo chmod u+s /usr/local/libexec/singularity/bin/singularity-$program-helper
+done
+
+# Create the directories that Singularity 2.6 expects to find.
+for directory in container final overlay session;
+do
+    sudo mkdir -p /var/singularity/mnt/$directory
+    sudo chmod 755 /var/singularity/mnt/$directory
+done