From a523e678c78890cf6ca4fb2936c8b608776e0da7 Mon Sep 17 00:00:00 2001 From: Mitchell R Date: Tue, 19 May 2026 04:06:36 +0200 Subject: [PATCH] =?UTF-8?q?fix(nodered):=20base=20is=20Alpine=20=E2=80=94?= =?UTF-8?q?=20use=20apk=20+=20su-exec,=20not=20apt=20+=20gosu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/docker/Dockerfile.nodered | 8 +++----- deploy/docker/nodered-entrypoint.sh | 6 +++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/deploy/docker/Dockerfile.nodered b/deploy/docker/Dockerfile.nodered index 46c600d..e1987c4 100644 --- a/deploy/docker/Dockerfile.nodered +++ b/deploy/docker/Dockerfile.nodered @@ -8,11 +8,9 @@ FROM nodered/node-red:latest USER root -# gosu lets the entrypoint drop from root to node-red after fixing /data -# perms. nodered/node-red is Debian-slim based so apt is the right channel. -RUN apt-get update \ - && apt-get install -y --no-install-recommends gosu \ - && rm -rf /var/lib/apt/lists/* +# su-exec lets the entrypoint drop from root → node-red after fixing /data. +# nodered/node-red:latest is Alpine-based — apt isn't present. +RUN apk add --no-cache su-exec # Copy our nodes into a path outside /data (which is volume-mounted) COPY nodered /usr/src/betterframe-nodes diff --git a/deploy/docker/nodered-entrypoint.sh b/deploy/docker/nodered-entrypoint.sh index dbb6507..3909004 100755 --- a/deploy/docker/nodered-entrypoint.sh +++ b/deploy/docker/nodered-entrypoint.sh @@ -26,6 +26,6 @@ fi # Ensure the volume + seeded file are owned by node-red. chown -R node-red:root "$DATA" 2>/dev/null || true -# Drop to the node-red user before launching. nodered/node-red is Debian -# based; we installed gosu in the Dockerfile for this. -exec gosu node-red:node-red npm start --cache /data/.npm -- --userDir /data "$@" +# Drop to the node-red user before launching. nodered/node-red is Alpine +# based; the Dockerfile installs su-exec for this. +exec su-exec node-red:node-red npm start --cache /data/.npm -- --userDir /data "$@"