installLibrePortalImageWebUI copyFolder's the template docker-compose.yml
(raw #LIBREPORTAL|TAG|VALUE placeholders) over the runtime one on every
WebUI build — including rebuilds/updates. On a fresh install the following
dockerInstallApp substitutes them, but on a rebuild (libreportal already
installed) nothing did, so the at-rest compose kept raw placeholders and a
plain 'docker compose' against it failed ("invalid boolean:
HEALTHCHECK_DATA", etc.) — it only worked because up_app.sh self-heals at
CLI start time. Re-run the tag processors (initializeAppVariables +
dockerConfigSetupFileWithData, the same heal up_app.sh uses) right after
the copy when libreportal is already installed, so the runtime compose is
always fully substituted at rest.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
32 lines
1.6 KiB
Bash
Executable File
32 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
installLibrePortalImageWebUI()
|
|
{
|
|
isHeader "LibrePortal WebUI Image"
|
|
|
|
isNotice "Building the LibrePortal WebUI Docker image..."
|
|
|
|
local result=$(copyFolder "$install_containers_dir/libreportal" "$containers_dir" "$sudo_user_name")
|
|
checkSuccess "Copy the LibrePortal to the containers folder"
|
|
|
|
reconcileWebuiDirOwnership
|
|
|
|
# copyFolder just restored the TEMPLATE docker-compose.yml, which carries raw
|
|
# #LIBREPORTAL|TAG|VALUE placeholders. On a fresh install the following
|
|
# dockerInstallApp (installLibrePortalAppWebUI) substitutes them; but on a
|
|
# REBUILD/update (libreportal already installed — this also runs via the WebUI
|
|
# deploy) nothing else does, leaving the at-rest compose unparseable by a plain
|
|
# `docker compose` (e.g. "invalid boolean: HEALTHCHECK_DATA"). Re-apply the tag
|
|
# processors here — the same self-heal up_app.sh uses — so the runtime compose
|
|
# is always fully substituted at rest, not just when started via the CLI.
|
|
if declare -F dockerConfigSetupFileWithData >/dev/null 2>&1 \
|
|
&& [[ "$(dockerCheckAppInstalled libreportal docker)" != "not_installed" ]]; then
|
|
initializeAppVariables libreportal >/dev/null 2>&1 || true
|
|
dockerConfigSetupFileWithData libreportal >/dev/null 2>&1 || true
|
|
checkSuccess "Re-applied LibrePortal WebUI compose tag substitutions"
|
|
fi
|
|
|
|
isNotice "Building libreportal-service image, this may take a while..."
|
|
local result=$(runFileOp docker build -t libreportal-service -f $containers_dir/libreportal/Dockerfile $containers_dir/libreportal >/dev/null 2>&1)
|
|
checkSuccess "Built LibrePortal WebUI Docker image"
|
|
} |