From 8bb6ec2b7c6bfc192dad743686c3fa236f85c122 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Wed, 6 Aug 2025 18:12:48 +0200 Subject: [PATCH] Make client appsettings.json replace work (#1098) --- Dockerfile.single | 62 +++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/Dockerfile.single b/Dockerfile.single index 0f43916b8..a6f7811d0 100644 --- a/Dockerfile.single +++ b/Dockerfile.single @@ -190,39 +190,37 @@ RUN mkdir -p /etc/s6-overlay/s6-rc.d/api && \ mkdir -p /etc/s6-overlay/s6-rc.d/api/dependencies.d && \ touch /etc/s6-overlay/s6-rc.d/api/dependencies.d/postgres-ready -# Client service (nginx for WASM app) - using printf to avoid escaping issues +# Client service (nginx for WASM app) - using echo approach RUN mkdir -p /etc/s6-overlay/s6-rc.d/client && \ - printf '#!/command/with-contenv bash\n\ -# Client service entrypoint\n\ -DEFAULT_PRIVATE_EMAIL_DOMAINS="localmail.tld"\n\ -DEFAULT_SUPPORT_EMAIL=""\n\ -PRIVATE_EMAIL_DOMAINS=${PRIVATE_EMAIL_DOMAINS:-$DEFAULT_PRIVATE_EMAIL_DOMAINS}\n\ -SUPPORT_EMAIL=${SUPPORT_EMAIL:-$DEFAULT_SUPPORT_EMAIL}\n\ -\n\ -mkdir -p /etc/nginx/ssl\n\ -\n\ -if [ ! -f /etc/nginx/ssl/nginx.crt ] || [ ! -f /etc/nginx/ssl/nginx.key ]; then\n\ - echo "Generating SSL certificate..."\n\ - openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt -subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"\n\ - chmod 644 /etc/nginx/ssl/nginx.crt\n\ - chmod 600 /etc/nginx/ssl/nginx.key\n\ -fi\n\ -\n\ -sed -i "s|\"ApiUrl\": \"http://localhost:5092\",||g" /app/client/wwwroot/appsettings.json\n\ -\n\ -json_array=$(echo $PRIVATE_EMAIL_DOMAINS | tr "," " " | awk "{printf \"[\"; for(i=1;i<=NF;i++) {printf \"\\\"%s\\\"\", \$i; if(i /etc/s6-overlay/s6-rc.d/client/run && \ + { echo '#!/command/with-contenv bash'; \ + echo '# Client service entrypoint'; \ + echo 'DEFAULT_PRIVATE_EMAIL_DOMAINS="localmail.tld"'; \ + echo 'DEFAULT_SUPPORT_EMAIL=""'; \ + echo 'PRIVATE_EMAIL_DOMAINS=${PRIVATE_EMAIL_DOMAINS:-$DEFAULT_PRIVATE_EMAIL_DOMAINS}'; \ + echo 'SUPPORT_EMAIL=${SUPPORT_EMAIL:-$DEFAULT_SUPPORT_EMAIL}'; \ + echo ''; \ + echo 'mkdir -p /etc/nginx/ssl'; \ + echo ''; \ + echo 'if [ ! -f /etc/nginx/ssl/nginx.crt ] || [ ! -f /etc/nginx/ssl/nginx.key ]; then'; \ + echo ' echo "Generating SSL certificate..."'; \ + echo ' openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt -subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"'; \ + echo ' chmod 644 /etc/nginx/ssl/nginx.crt'; \ + echo ' chmod 600 /etc/nginx/ssl/nginx.key'; \ + echo 'fi'; \ + echo ''; \ + echo '# Create simple JSON with environment variables'; \ + echo 'cat > /app/client/wwwroot/appsettings.json << EOF'; \ + echo '{'; \ + echo ' "PrivateEmailDomains": ["$PRIVATE_EMAIL_DOMAINS"],'; \ + echo ' "SupportEmail": "$SUPPORT_EMAIL",'; \ + echo ' "PublicRegistrationEnabled": "$PUBLIC_REGISTRATION_ENABLED"'; \ + echo '}'; \ + echo 'EOF'; \ + echo ''; \ + echo 'sed -i "s|/usr/share/nginx/html|/app/client/wwwroot|g" /app/client/nginx.conf'; \ + echo ''; \ + echo 'exec nginx -c /app/client/nginx.conf -g "daemon off;"'; \ + } > /etc/s6-overlay/s6-rc.d/client/run && \ chmod +x /etc/s6-overlay/s6-rc.d/client/run && \ echo "longrun" > /etc/s6-overlay/s6-rc.d/client/type