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:
@@ -6,10 +6,14 @@ FROM nodered/node-red:latest
|
|||||||
# Install curl for health checks
|
# Install curl for health checks
|
||||||
USER root
|
USER root
|
||||||
RUN apk add --no-cache curl
|
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
|
WORKDIR /data/evolv
|
||||||
|
USER node-red
|
||||||
|
|
||||||
# -------------------------------------------------------
|
# -------------------------------------------------------
|
||||||
# Layer-cache: copy dependency manifests first
|
# Layer-cache: copy dependency manifests first
|
||||||
|
|||||||
Reference in New Issue
Block a user