From a0b1d9a65c93aa274d72c3189cac01fddf3f3e7b Mon Sep 17 00:00:00 2001 From: Sean Cheah Date: Tue, 27 Jan 2026 14:37:18 -0800 Subject: [PATCH 1/3] Source redundant environment variables from single script --- runscripts/container/Singularity | 24 ++++++------------------ runscripts/container/singularity-env.sh | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 18 deletions(-) create mode 100644 runscripts/container/singularity-env.sh diff --git a/runscripts/container/Singularity b/runscripts/container/Singularity index e2a6b1332..ae93a1999 100644 --- a/runscripts/container/Singularity +++ b/runscripts/container/Singularity @@ -9,15 +9,8 @@ From: ghcr.io/astral-sh/uv@sha256:cda8422643a3d47dd5d457639dce8f5fbd130ef158ff4a export IMAGE_GIT_HASH="{{ git_hash }}" export IMAGE_GIT_BRANCH="{{ git_branch }}" export IMAGE_TIMESTAMP="{{ timestamp }}" - export UV_CACHE_DIR="/vEcoli/.uv_cache" - # Silence warning about cache and sync targets being on different filesystems - export UV_LINK_MODE="copy" - # Prevent uv dirs from being created in any locations that may overlap with - # host filesystems that Apptainer may automount - export UV_TOOL_DIR="/vEcoli/.uv_tools" - export UV_TOOL_BIN_DIR="/vEcoli/.uv_tools/bin" - export UV_PYTHON_INSTALL_DIR="/vEcoli/.uv_python" - export UV_PYTHON_BIN_DIR="/vEcoli/.uv_python/bin" + # Source shared uv environment variables + . /vEcoli/singularity-env.sh # runscripts/container/build-image.sh has some custom logic to replace this # with the environment variables that are set in .env {{ dot_env_vars }} @@ -31,6 +24,7 @@ From: ghcr.io/astral-sh/uv@sha256:cda8422643a3d47dd5d457639dce8f5fbd130ef158ff4a %files repo.tar /repo.tar + runscripts/container/singularity-env.sh /vEcoli/singularity-env.sh %post mkdir -p /vEcoli @@ -40,12 +34,6 @@ From: ghcr.io/astral-sh/uv@sha256:cda8422643a3d47dd5d457639dce8f5fbd130ef158ff4a fi apt-get update && apt-get install -y gcc procps nano curl cd /vEcoli - # Silence warning about cache and sync targets being on different filesystems - export UV_LINK_MODE="copy" - # Prevent uv dirs from being created in any locations that may overlap with - # host filesystems that Apptainer may automount - export UV_TOOL_DIR="/vEcoli/.uv_tools" - export UV_TOOL_BIN_DIR="/vEcoli/.uv_tools/bin" - export UV_PYTHON_INSTALL_DIR="/vEcoli/.uv_python" - export UV_PYTHON_BIN_DIR="/vEcoli/.uv_python/bin" - UV_CACHE_DIR="/vEcoli/.uv_cache" UV_COMPILE_BYTECODE=1 uv sync --frozen + # Source shared uv environment variables + . /vEcoli/singularity-env.sh + UV_COMPILE_BYTECODE=1 uv sync --frozen diff --git a/runscripts/container/singularity-env.sh b/runscripts/container/singularity-env.sh new file mode 100644 index 000000000..6cc693573 --- /dev/null +++ b/runscripts/container/singularity-env.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# Shared environment variables for Singularity build and runtime + +# Silence warning about cache and sync targets being on different filesystems +export UV_LINK_MODE="copy" + +# Prevent uv dirs from being created in any locations that may overlap with +# host filesystems that Apptainer may automount +export UV_TOOL_DIR="/vEcoli/.uv_tools" +export UV_TOOL_BIN_DIR="/vEcoli/.uv_tools/bin" +export UV_PYTHON_INSTALL_DIR="/vEcoli/.uv_python" +export UV_PYTHON_BIN_DIR="/vEcoli/.uv_python/bin" + +# Cache directory +export UV_CACHE_DIR="/vEcoli/.uv_cache" + +# Limit concurrency to try to fix sporadic build issues on HPC clusters +export UV_CONCURRENT_BUILDS=1 +export UV_CONCURRENT_DOWNLOADS=1 +export UV_CONCURRENT_INSTALLS=1 +# Try to disable cache to fix sporadic build issues on HPC clusters +export UV_NO_CACHE=1 From b18ea47b70e18ceee75479173f271fd7e3b8ed90 Mon Sep 17 00:00:00 2001 From: Sean Cheah Date: Tue, 27 Jan 2026 14:45:18 -0800 Subject: [PATCH 2/3] Remove unused cache dir variable --- runscripts/container/singularity-env.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/runscripts/container/singularity-env.sh b/runscripts/container/singularity-env.sh index 6cc693573..3a687da12 100644 --- a/runscripts/container/singularity-env.sh +++ b/runscripts/container/singularity-env.sh @@ -11,9 +11,6 @@ export UV_TOOL_BIN_DIR="/vEcoli/.uv_tools/bin" export UV_PYTHON_INSTALL_DIR="/vEcoli/.uv_python" export UV_PYTHON_BIN_DIR="/vEcoli/.uv_python/bin" -# Cache directory -export UV_CACHE_DIR="/vEcoli/.uv_cache" - # Limit concurrency to try to fix sporadic build issues on HPC clusters export UV_CONCURRENT_BUILDS=1 export UV_CONCURRENT_DOWNLOADS=1 From 4a8a4e57f792c63250a70938b436cd4d9a724ba2 Mon Sep 17 00:00:00 2001 From: Sean Cheah Date: Thu, 29 Jan 2026 22:46:38 -0800 Subject: [PATCH 3/3] Sporadic build issue should be fixed now --- runscripts/container/singularity-env.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/runscripts/container/singularity-env.sh b/runscripts/container/singularity-env.sh index 3a687da12..f2916e6ff 100644 --- a/runscripts/container/singularity-env.sh +++ b/runscripts/container/singularity-env.sh @@ -10,10 +10,4 @@ export UV_TOOL_DIR="/vEcoli/.uv_tools" export UV_TOOL_BIN_DIR="/vEcoli/.uv_tools/bin" export UV_PYTHON_INSTALL_DIR="/vEcoli/.uv_python" export UV_PYTHON_BIN_DIR="/vEcoli/.uv_python/bin" - -# Limit concurrency to try to fix sporadic build issues on HPC clusters -export UV_CONCURRENT_BUILDS=1 -export UV_CONCURRENT_DOWNLOADS=1 -export UV_CONCURRENT_INSTALLS=1 -# Try to disable cache to fix sporadic build issues on HPC clusters -export UV_NO_CACHE=1 +export UV_CACHE_DIR="/vEcoli/.uv_cache"