Update hass-n8n/docker-entrypoint.sh
This commit is contained in:
@@ -10,17 +10,27 @@ mkdir -p "${N8N_PATH}/.n8n/.cache"
|
||||
## USER PARAMETERS ##
|
||||
#####################
|
||||
|
||||
# Read env_vars_list line by line (NO arrays)
|
||||
jq -r '.env_vars_list[]?' "$CONFIG_PATH" | while IFS= read -r element; do
|
||||
# IMPORTANT:
|
||||
# Don't use: jq ... | while ...; do export ...; done
|
||||
# Because in POSIX sh it runs in a subshell and exports won't persist.
|
||||
values="$(jq -r '.env_vars_list[]?' "$CONFIG_PATH")"
|
||||
|
||||
# Iterate newline-separated list safely in POSIX sh
|
||||
set -f
|
||||
IFS='
|
||||
'
|
||||
for element in $values; do
|
||||
key="${element%%:*}"
|
||||
value="${element#*:}"
|
||||
|
||||
# trim whitespace (POSIX)
|
||||
# trim whitespace (POSIX; busybox sed is fine)
|
||||
value="$(printf '%s' "$value" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')"
|
||||
|
||||
export "$key=$value"
|
||||
echo "exported $key=$value"
|
||||
done
|
||||
unset IFS
|
||||
set +f
|
||||
|
||||
export N8N_HOST="$(jq -r '.n8n_host // empty' "$CONFIG_PATH")"
|
||||
export N8N_PORT="$(jq -r '.n8n_port // empty' "$CONFIG_PATH")"
|
||||
@@ -48,11 +58,15 @@ fi
|
||||
## MAIN ##
|
||||
###########
|
||||
|
||||
# Fix ownership BEFORE exec
|
||||
chown -R node /home/node || true
|
||||
# Fix ownership BEFORE exec (don't fail container if chown can't run)
|
||||
chown -R node:node /home/node 2>/dev/null || true
|
||||
|
||||
# BusyBox 'su' is available (from busybox --install /bin)
|
||||
# Use -s to specify shell and -c to run command.
|
||||
if [ "$#" -gt 0 ]; then
|
||||
exec su-exec node n8n $N8N_CMD_LINE
|
||||
# Started with args (keep behavior similar to your original)
|
||||
exec su node -s /bin/sh -c "n8n $N8N_CMD_LINE"
|
||||
else
|
||||
exec su-exec node n8n start
|
||||
# Started without args
|
||||
exec su node -s /bin/sh -c "n8n start"
|
||||
fi
|
||||
Reference in New Issue
Block a user