update hpc stuff
This commit is contained in:
parent
debca5464a
commit
29bd9d7ce5
|
@ -25,7 +25,7 @@ let
|
||||||
base-container = runCommand "empty.sif.d" {
|
base-container = runCommand "empty.sif.d" {
|
||||||
buildInputs = [ coreutils ];
|
buildInputs = [ coreutils ];
|
||||||
} ''
|
} ''
|
||||||
mkdir "$out"
|
mkdir -p "$out"
|
||||||
cd "$out"
|
cd "$out"
|
||||||
mkdir -p proc sys dev nix etc bin usr/bin .singularity.d
|
mkdir -p proc sys dev nix etc bin usr/bin .singularity.d
|
||||||
ln -s /etc/sh bin/sh
|
ln -s /etc/sh bin/sh
|
||||||
|
@ -44,6 +44,7 @@ let
|
||||||
mkdir -p /var/lib/singularity/mnt/session
|
mkdir -p /var/lib/singularity/mnt/session
|
||||||
echo "root:x:0:0:System administrator:/root:/bin/sh" > /etc/passwd
|
echo "root:x:0:0:System administrator:/root:/bin/sh" > /etc/passwd
|
||||||
echo > /etc/resolv.conf
|
echo > /etc/resolv.conf
|
||||||
|
mkdir -p "$out"
|
||||||
${singularity}/bin/singularity build "$out/empty.sif" "container/"
|
${singularity}/bin/singularity build "$out/empty.sif" "container/"
|
||||||
'');
|
'');
|
||||||
|
|
||||||
|
@ -67,7 +68,7 @@ let
|
||||||
base-etc = runCommand "singularity-etc" {
|
base-etc = runCommand "singularity-etc" {
|
||||||
buildInputs = [ coreutils bash cacert ];
|
buildInputs = [ coreutils bash cacert ];
|
||||||
} ''
|
} ''
|
||||||
mkdir "$out"
|
mkdir -p "$out"
|
||||||
ln -s "${shell}/bin/startup.sh" "$out/runscript"
|
ln -s "${shell}/bin/startup.sh" "$out/runscript"
|
||||||
ln -s "${bash}/bin/bash" "$out/sh"
|
ln -s "${bash}/bin/bash" "$out/sh"
|
||||||
ln -s "${coreutils}/bin/env" "$out/env"
|
ln -s "${coreutils}/bin/env" "$out/env"
|
||||||
|
@ -81,13 +82,15 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
squashfs = makeSquashFs { filename = "nix-store"; storeContents = [ shell ]; };
|
squashfs = makeSquashFs { filename = "nix-store"; storeContents = [ shell ]; comp = "gzip"; };
|
||||||
|
|
||||||
startCommand = writeText "run-container.sh" ''
|
startCommand = writeText "run-container.sh" ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
module load singularity/3.10.3
|
if ! which singularity &>/dev/null; then
|
||||||
|
module load singularity/3.10.3
|
||||||
|
fi
|
||||||
|
|
||||||
temp_dir="$(mktemp -d)"
|
temp_dir="$(mktemp -d)"
|
||||||
mkdir -p "''${TMPDIR:-/tmp}/empty"
|
mkdir -p "''${TMPDIR:-/tmp}/empty"
|
||||||
|
@ -107,10 +110,15 @@ let
|
||||||
cat /etc/localtime > $temp_dir/etc/localtime
|
cat /etc/localtime > $temp_dir/etc/localtime
|
||||||
cat /etc/resolv.conf > $temp_dir/etc/resolv.conf
|
cat /etc/resolv.conf > $temp_dir/etc/resolv.conf
|
||||||
|
|
||||||
singularity run -B "/work:/work,/scratch:/scratch,$temp_dir/nix-store.squashfs:/nix/store:image-src=/,$temp_dir/etc:/etc" --pid --uts --ipc container-base.sif
|
workdir="/work"
|
||||||
|
if [ ! -d "/work" ]; then
|
||||||
|
workdir="/projects"
|
||||||
|
fi
|
||||||
|
|
||||||
|
singularity run -B "/$workdir:/$workdir,/scratch:/scratch,$temp_dir/nix-store.squashfs:/nix/store:image-src=/,$temp_dir/etc:/etc" --pid --uts --ipc container-base.sif
|
||||||
'';
|
'';
|
||||||
in runCommand "hpc-files.d" {} ''
|
in runCommand "hpc-files.d" {} ''
|
||||||
mkdir "$out"
|
mkdir -p "$out"
|
||||||
cp "${squashfs}" "$out/nix-store.squashfs"
|
cp "${squashfs}" "$out/nix-store.squashfs"
|
||||||
cp -r "${base-etc}" "$out/etc"
|
cp -r "${base-etc}" "$out/etc"
|
||||||
cp "${container-image}/empty.sif" "$out/container-base.sif"
|
cp "${container-image}/empty.sif" "$out/container-base.sif"
|
||||||
|
|
Loading…
Reference in New Issue