about summary refs log tree commit diff
path: root/singularity-worker-deploy.sh
blob: d70975809b3a3a08dfaefd3907de3284da70b2be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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