feat: bake BF Node-RED nodes into nodered Docker image

- New deploy/docker/Dockerfile.nodered extends nodered/node-red,
  npm-installs the workspace nodered/ package into
  /usr/src/node-red/node_modules so bf-* nodes auto-load on boot.
- docker-compose nodered service switched from public image to
  this build context. Rebuilding (--build) picks up node changes.
This commit is contained in:
Mitchell R 2026-05-13 01:57:26 +02:00
parent b83782b8e0
commit 896934ae84
2 changed files with 24 additions and 1 deletions

View file

@ -0,0 +1,21 @@
# BetterFrame Node-RED image with bundled BF nodes preinstalled.
#
# Extends official nodered/node-red, installs the workspace nodered/
# package into Node-RED's module tree. Rebuilding the image
# (docker compose up --build) picks up any node changes.
FROM nodered/node-red:latest
USER root
# Copy our nodes into a build dir
COPY nodered /tmp/betterframe-nodes
# Install into Node-RED's own node_modules so they're found at runtime.
# Survives /data volume mounts because /usr/src/node-red is image-level.
RUN cd /usr/src/node-red && \
npm install --omit=dev /tmp/betterframe-nodes && \
rm -rf /tmp/betterframe-nodes && \
chown -R node-red:root /usr/src/node-red/node_modules
USER node-red

View file

@ -44,7 +44,9 @@ services:
- betterframe - betterframe
nodered: nodered:
image: nodered/node-red:latest build:
context: ../..
dockerfile: deploy/docker/Dockerfile.nodered
container_name: betterframe-nodered container_name: betterframe-nodered
restart: unless-stopped restart: unless-stopped
environment: environment: