From e8bb95cb35ed1b02a85cf7cbea5bfc20fe0324c2 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Wed, 5 May 2021 14:50:38 +0200 Subject: build: Support runtime variables in frontend Docker image This change adds support for dynamically specifying various variables for the frontend Docker image through environmental variables. Previously, these were embedded directly into the source code, which requires rebuilding the entire image to change these variables. --- opendc-web/opendc-web-ui/scripts/envsubst-html.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100755 opendc-web/opendc-web-ui/scripts/envsubst-html.sh (limited to 'opendc-web/opendc-web-ui/scripts') diff --git a/opendc-web/opendc-web-ui/scripts/envsubst-html.sh b/opendc-web/opendc-web-ui/scripts/envsubst-html.sh new file mode 100755 index 00000000..8ca12e8a --- /dev/null +++ b/opendc-web/opendc-web-ui/scripts/envsubst-html.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +set -e + +# We can use simple version of envsubst execution as +# envsubst < /usr/share/nginx/html/index.html.template > /usr/share/nginx/html/index.html +# but it replaces everything that looks like environment variable substitution +# so it affects `default values` approach. +# we need to replace only provided environment variables. + +auto_envsubst() { + template_path="/usr/share/nginx/html/index.html.template" + output_path="/usr/share/nginx/html/index.html" + defined_envs=$(printf '${%s} ' $(env | cut -d= -f1)) + envsubst "$defined_envs" < "$template_path" > "$output_path" +} + +auto_envsubst +exit 0 -- cgit v1.2.3