From 7b15536583aeddf443cf9c4e76cc1a821b9d4b3c Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 5 Feb 2026 10:32:14 -0500 Subject: [PATCH] build(docker): generate variables needed for local repo builds --- src/docker/itk-wasm-base/build.sh | 11 +++-- src/docker/itk-wasm-base/generate-env-vars.sh | 44 +++++++++++++++++++ 2 files changed, 52 insertions(+), 3 deletions(-) create mode 100755 src/docker/itk-wasm-base/generate-env-vars.sh diff --git a/src/docker/itk-wasm-base/build.sh b/src/docker/itk-wasm-base/build.sh index f0e498987..1dc808220 100755 --- a/src/docker/itk-wasm-base/build.sh +++ b/src/docker/itk-wasm-base/build.sh @@ -80,14 +80,19 @@ if [[ -n "$local_itk" ]]; then local_itk_build_arg="--build-arg USE_LOCAL_ITK=1" fi -# Cleanup function to restore ITKLocalCopy to placeholder state -cleanup_local_itk() { +# Generate environment variables file for Docker +"$script_dir/generate-env-vars.sh" + +# Cleanup function to restore ITKLocalCopy to placeholder state and remove generated files +cleanup_build_artifacts() { if [[ -n "$local_itk" ]]; then rm -rf "$script_dir/ITKLocalCopy"/* touch "$script_dir/ITKLocalCopy/.gitkeep" fi + # Remove generated env vars file + rm -f "$script_dir/itk_wasm_env_vars.sh" } -trap cleanup_local_itk EXIT +trap cleanup_build_artifacts EXIT $exe $build_cmd $tag_flag quay.io/itkwasm/emscripten-base:latest-$host_arch \ --build-arg IMAGE=quay.io/itkwasm/emscripten-base \ diff --git a/src/docker/itk-wasm-base/generate-env-vars.sh b/src/docker/itk-wasm-base/generate-env-vars.sh new file mode 100755 index 000000000..6b97ae508 --- /dev/null +++ b/src/docker/itk-wasm-base/generate-env-vars.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +# Generate itk_wasm_env_vars.sh for use in Docker builds +# This script sources the root itk_wasm_env.bash and extracts only +# the variables needed by the Dockerfile + +set -eo pipefail + +script_dir="$(cd "$(dirname "$0")" && pwd)" +root_dir="$(cd "$script_dir/../../.." && pwd)" + +# Source the main environment file +# Note: We need to handle the fact that itk_wasm_env.bash tries to parse +# package.json files which may not work in all contexts +export ITK_WASM_DEV_DOCKER_TAG="${ITK_WASM_DEV_DOCKER_TAG:-latest}" + +# Extract the core variables we need +source "$root_dir/itk_wasm_env.bash" 2>/dev/null || { + # If sourcing fails (e.g., due to jq commands), extract manually + ITK_WASM_DCMTK_REPOSITORY="${ITK_WASM_DCMTK_REPOSITORY:-https://github.com/InsightSoftwareConsortium/DCMTK}" + ITK_WASM_DCMTK_GIT_TAG="${ITK_WASM_DCMTK_GIT_TAG:-2fe4dacbe9c343dba350fcff6eab365241636623}" + ITK_WASM_ITK_REPOSITORY="${ITK_WASM_ITK_REPOSITORY:-https://github.com/thewtex/ITK}" + ITK_WASM_ITK_BRANCH="${ITK_WASM_ITK_BRANCH:-itkwasm-2025-03-19-25d3162371}" +} + +# Generate the env vars file for Docker +cat > "$script_dir/itk_wasm_env_vars.sh" << EOF +#!/usr/bin/env sh +# Auto-generated by generate-env-vars.sh - DO NOT EDIT +# Generated from: $root_dir/itk_wasm_env.bash + +export ITK_WASM_DCMTK_REPOSITORY="${ITK_WASM_DCMTK_REPOSITORY}" +export ITK_WASM_DCMTK_GIT_TAG="${ITK_WASM_DCMTK_GIT_TAG}" +export ITK_WASM_ITK_REPOSITORY="${ITK_WASM_ITK_REPOSITORY}" +export ITK_WASM_ITK_BRANCH="${ITK_WASM_ITK_BRANCH}" +EOF + +chmod +x "$script_dir/itk_wasm_env_vars.sh" + +echo "Generated $script_dir/itk_wasm_env_vars.sh with:" +echo " ITK_WASM_ITK_REPOSITORY=${ITK_WASM_ITK_REPOSITORY}" +echo " ITK_WASM_ITK_BRANCH=${ITK_WASM_ITK_BRANCH}" +echo " ITK_WASM_DCMTK_REPOSITORY=${ITK_WASM_DCMTK_REPOSITORY}" +echo " ITK_WASM_DCMTK_GIT_TAG=${ITK_WASM_DCMTK_GIT_TAG}"