From f59552b6896cbc1c1601dd86973c2207e1ca33c5 Mon Sep 17 00:00:00 2001 From: Alex J Burke Date: Mon, 9 Mar 2026 16:28:11 +0100 Subject: [PATCH 1/7] Attempt to wire installation of migux into the Dockerfile. --- Dockerfile.rocky9 | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Dockerfile.rocky9 b/Dockerfile.rocky9 index f0f95647..29871ac1 100755 --- a/Dockerfile.rocky9 +++ b/Dockerfile.rocky9 @@ -909,6 +909,28 @@ RUN git clone ${MIG_GIT_REPO} migrid.git && \ rm -rf migrid.git/ && \ echo "migrid version: ${MIG_GIT_REPO} ${MIG_GIT_BRANCH} ${MIG_GIT_REV}" > ./active-migrid-version.txt +# With the repository available, we have access to definitions and scripts +# within it. As such, we can gather any dependencies defined there. + +RUN if [ -e "$MIG_ROOT/envhelp/scripts/expand_sources.py" ]; then \ + "$MIG_ROOT/envhelp/scripts/expand_sources.py" --use-wget; fi + +# In a per-feature requirements file future, we will have something generic +# across the features here. For now, perform one-off logic to arrange for a +# package of migrid UX that we can install; then do so. + +USER root +ENV FEATURE_MIGUX="$MIG_ROOT/mig/install/requirements/migux-requirements.txt" +RUN if [ -e "$FEATURE_MIGUX" ]; then \ + python3 -m pip install \ + -r "$FEATURE_MIGUX" \ + --extra-index-url=`cat "$MIG_ROOT/envhelp/source/.indexurls"`; \ + fi +USER $USER + +RUN if [ -e "$MIG_ROOT/mig/install/postinstall/migux-postinstall" ]; then \ + "$MIG_ROOT/mig/install/postinstall/migux-postinstall"; fi + #------------------------- next stage -----------------------------# FROM --platform=linux/$ARCH download_mig AS install_mig From d807e3a1eadc1794479e562f28a92ef35c385a95 Mon Sep 17 00:00:00 2001 From: Alex Burke Date: Sun, 22 Mar 2026 14:57:03 +0100 Subject: [PATCH 2/7] Add system wide priming of templates. --- Dockerfile.rocky9 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Dockerfile.rocky9 b/Dockerfile.rocky9 index 29871ac1..6c50f07c 100755 --- a/Dockerfile.rocky9 +++ b/Dockerfile.rocky9 @@ -1313,6 +1313,10 @@ RUN cp generated-confs/MiGserver.conf $MIG_ROOT/mig/server/ \ && cp generated-confs/static-skin.css $MIG_ROOT/mig/images/ \ && cp generated-confs/index.html $MIG_ROOT/state/user_home/ +# With the configuration in hand, prime any configured templates +RUN python3 -m mig.lib.templates prime \ + -c $MIG_ROOT/mig/server/MiGserver.conf + # Site conf for js helpers including status page and auth options on index page RUN [ -e "$MIG_ROOT/mig/images/site-conf-${DOMAIN}.js" ] || \ cp -a $MIG_ROOT/mig/images/site-conf-${EMULATE_FQDN}.js \ From 10d032e59528517743138873412049241b9c05d3 Mon Sep 17 00:00:00 2001 From: Alex Burke Date: Fri, 27 Mar 2026 13:47:20 +0100 Subject: [PATCH 3/7] Switch local package installation to a single local file url. --- Dockerfile.rocky9 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Dockerfile.rocky9 b/Dockerfile.rocky9 index 6c50f07c..8f1e4b0a 100755 --- a/Dockerfile.rocky9 +++ b/Dockerfile.rocky9 @@ -922,9 +922,14 @@ RUN if [ -e "$MIG_ROOT/envhelp/scripts/expand_sources.py" ]; then \ USER root ENV FEATURE_MIGUX="$MIG_ROOT/mig/install/requirements/migux-requirements.txt" RUN if [ -e "$FEATURE_MIGUX" ]; then \ + python3 -m pip install dumb-pypi; \ + dumb-pypi \ + --package-list "$MIG_ROOT/envhelp/source/.packages.lst" \ + --packages-url='../..' \ + --output-dir "$MIG_ROOT/envhelp/source"; \ python3 -m pip install \ -r "$FEATURE_MIGUX" \ - --extra-index-url=`cat "$MIG_ROOT/envhelp/source/.indexurls"`; \ + --extra-index-url="$MIG_ROOT/envhelp/source/simple"; \ fi USER $USER From bf90925482c6b58edd5b826fca423e62d1619515 Mon Sep 17 00:00:00 2001 From: Alex Burke Date: Sat, 4 Apr 2026 15:14:27 +0200 Subject: [PATCH 4/7] Cacth up with directory name change. --- Dockerfile.rocky9 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile.rocky9 b/Dockerfile.rocky9 index 8f1e4b0a..8a0d24ce 100755 --- a/Dockerfile.rocky9 +++ b/Dockerfile.rocky9 @@ -924,12 +924,12 @@ ENV FEATURE_MIGUX="$MIG_ROOT/mig/install/requirements/migux-requirements.txt" RUN if [ -e "$FEATURE_MIGUX" ]; then \ python3 -m pip install dumb-pypi; \ dumb-pypi \ - --package-list "$MIG_ROOT/envhelp/source/.packages.lst" \ + --package-list "$MIG_ROOT/envhelp/staging/.packages.lst" \ --packages-url='../..' \ - --output-dir "$MIG_ROOT/envhelp/source"; \ + --output-dir "$MIG_ROOT/envhelp/staging"; \ python3 -m pip install \ -r "$FEATURE_MIGUX" \ - --extra-index-url="$MIG_ROOT/envhelp/source/simple"; \ + --extra-index-url="$MIG_ROOT/envhelp/staging/simple"; \ fi USER $USER From 7d6e3036ae2d7cbdc9ae9b581a7d9547cb9a38d1 Mon Sep 17 00:00:00 2001 From: Alex Burke Date: Sun, 24 May 2026 20:07:01 +0200 Subject: [PATCH 5/7] Try to come up with a compromise for a templates cache dir location. --- Dockerfile.rocky9 | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile.rocky9 b/Dockerfile.rocky9 index 8a0d24ce..2735a722 100755 --- a/Dockerfile.rocky9 +++ b/Dockerfile.rocky9 @@ -1309,6 +1309,7 @@ RUN ./generateconfs.py --source=. \ #--peers_notice="${PEERS_NOTICE}" --logo_center="${LOGO_CENTER}" \ #--support-text="${SUPPORT_TEXT}" --privacy_text="${PRIVACY_TEXT}" \ --datasafety_link="${DATASAFETY_LINK}" --datasafety_text="${DATASAFETY_TEXT}" \ + --templates_cache_dir="${MIG_ROOT}/__templates_cache__" \ --extra_userpage_scripts="${EXTRA_USERPAGE_SCRIPTS}" \ --extra_userpage_styles="${EXTRA_USERPAGE_STYLES}" \ --sftp_max_sessions=${SFTP_MAX_SESSIONS} \ From d75a4067113c81ba2e7f66fac7a809e5f98b3be5 Mon Sep 17 00:00:00 2001 From: Alex Burke Date: Sun, 24 May 2026 21:03:09 +0200 Subject: [PATCH 6/7] align naming --- Dockerfile.rocky9 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.rocky9 b/Dockerfile.rocky9 index 2735a722..3005ab66 100755 --- a/Dockerfile.rocky9 +++ b/Dockerfile.rocky9 @@ -1309,7 +1309,7 @@ RUN ./generateconfs.py --source=. \ #--peers_notice="${PEERS_NOTICE}" --logo_center="${LOGO_CENTER}" \ #--support-text="${SUPPORT_TEXT}" --privacy_text="${PRIVACY_TEXT}" \ --datasafety_link="${DATASAFETY_LINK}" --datasafety_text="${DATASAFETY_TEXT}" \ - --templates_cache_dir="${MIG_ROOT}/__templates_cache__" \ + --templates_cache_dir="${MIG_ROOT}/__template_cache__" \ --extra_userpage_scripts="${EXTRA_USERPAGE_SCRIPTS}" \ --extra_userpage_styles="${EXTRA_USERPAGE_STYLES}" \ --sftp_max_sessions=${SFTP_MAX_SESSIONS} \ From c6392652756caed7f6a560e37a11f0c584a5c60b Mon Sep 17 00:00:00 2001 From: Alex Burke Date: Mon, 1 Jun 2026 19:55:23 +0200 Subject: [PATCH 7/7] Avoid --temapltes_cache_dir so we get a state_path relative default. --- Dockerfile.rocky9 | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile.rocky9 b/Dockerfile.rocky9 index 3005ab66..8a0d24ce 100755 --- a/Dockerfile.rocky9 +++ b/Dockerfile.rocky9 @@ -1309,7 +1309,6 @@ RUN ./generateconfs.py --source=. \ #--peers_notice="${PEERS_NOTICE}" --logo_center="${LOGO_CENTER}" \ #--support-text="${SUPPORT_TEXT}" --privacy_text="${PRIVACY_TEXT}" \ --datasafety_link="${DATASAFETY_LINK}" --datasafety_text="${DATASAFETY_TEXT}" \ - --templates_cache_dir="${MIG_ROOT}/__template_cache__" \ --extra_userpage_scripts="${EXTRA_USERPAGE_SCRIPTS}" \ --extra_userpage_styles="${EXTRA_USERPAGE_STYLES}" \ --sftp_max_sessions=${SFTP_MAX_SESSIONS} \