#!/bin/sh # Script to dynamically replace environment variables in the static files # This allows updating env variables without rebuilding the container # The directory where the static files are located (serve uses /app/dist) ROOT_DIR=/app/dist # Create env-config.js with the environment variables echo "window.env = {" > $ROOT_DIR/env-config.js # First, check if .env file exists and read from it if [ -f "$ROOT_DIR/.env" ]; then echo "Loading environment variables from .env file..." # Extract variables starting with VITE_ and add them to env-config.js grep '^VITE_' $ROOT_DIR/.env | while read -r line; do # Split the line into variable name and value var_name=$(echo $line | cut -d '=' -f1) var_value=$(echo $line | cut -d '=' -f2-) # Remove VITE_ prefix for the frontend variable name frontend_var_name=$(echo $var_name | sed 's/^VITE_//') # Add the variable to env-config.js echo " $frontend_var_name: \"$var_value\"," >> $ROOT_DIR/env-config.js done else echo "No .env file found, checking container environment variables..." # Fallback to container environment variables # Loop through all environment variables starting with VITE_ env | grep '^VITE_' | while IFS='=' read -r var_name var_value; do # Remove VITE_ prefix for the frontend variable name frontend_var_name=$(echo $var_name | sed 's/^VITE_//') # Add the variable to env-config.js echo " $frontend_var_name: \"$var_value\"," >> $ROOT_DIR/env-config.js done fi # Close the JavaScript object echo "};" >> $ROOT_DIR/env-config.js echo "Environment variables loaded successfully." # Execute the command passed to the script (usually start nginx) exec "$@"