fix(docker): chown /data/evolv to node-red before WORKDIR

The original Dockerfile switched to USER node-red before WORKDIR
/data/evolv, so the auto-created parent directory ended up root-owned
and `RUN npm install` failed with EACCES trying to mkdir node_modules.

Fix: mkdir + chown explicitly as root, then WORKDIR + USER node-red.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
znetsixe
2026-05-11 15:41:00 +02:00
parent 23dc23328d
commit c25866e7bc

View File

@@ -6,10 +6,14 @@ FROM nodered/node-red:latest
# Install curl for health checks
USER root
RUN apk add --no-cache curl
USER node-red
# Set working directory to the EVOLV bind mount location
# Set working directory to the EVOLV bind mount location.
# Create + chown explicitly so the unprivileged node-red user can
# write `node_modules` during `npm install` below. Without this the
# WORKDIR is created as root and npm fails with EACCES.
RUN mkdir -p /data/evolv && chown -R node-red:node-red /data/evolv
WORKDIR /data/evolv
USER node-red
# -------------------------------------------------------
# Layer-cache: copy dependency manifests first