From 64d046100aeffede9a6d24b49c910e8c4eec6740 Mon Sep 17 00:00:00 2001 From: Owen Solberg Date: Thu, 11 Jan 2024 09:47:10 -0800 Subject: [PATCH] Containerize: accommodate nested or pre-existing spack-env paths (#41558) The current `mkdir {{ paths.environment }}` will generate an error if: * `{{ paths.environment }}` already exists, or * `{{ paths.environment }}` is nested in non-existing dirs. Adding `-p` to the command will make this robust to both possibilities. Set noclobber bash option when writing manifest. --- share/spack/templates/container/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/share/spack/templates/container/Dockerfile b/share/spack/templates/container/Dockerfile index 2fad37affb..2f7aae901c 100644 --- a/share/spack/templates/container/Dockerfile +++ b/share/spack/templates/container/Dockerfile @@ -16,7 +16,8 @@ RUN {% if os_package_update %}{{ os_packages_build.update }} \ # What we want to install and how we want to install it # is specified in a manifest file (spack.yaml) -RUN mkdir {{ paths.environment }} \ +RUN mkdir -p {{ paths.environment }} && \ +set -o noclobber \ {{ manifest }} > {{ paths.environment }}/spack.yaml # Install the software, remove unnecessary deps