update hpc stuff

This commit is contained in:
xenia 2025-09-26 15:42:53 -04:00
parent 3a44be91fc
commit 39f8e87ac1
1 changed files with 14 additions and 6 deletions

View File

@ -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"