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
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user