diff --git a/deploy/docker/Dockerfile.nodered b/deploy/docker/Dockerfile.nodered new file mode 100644 index 0000000..11574ca --- /dev/null +++ b/deploy/docker/Dockerfile.nodered @@ -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 diff --git a/deploy/docker/docker-compose.yml b/deploy/docker/docker-compose.yml index 01b11f5..dca4cfa 100644 --- a/deploy/docker/docker-compose.yml +++ b/deploy/docker/docker-compose.yml @@ -44,7 +44,9 @@ services: - betterframe nodered: - image: nodered/node-red:latest + build: + context: ../.. + dockerfile: deploy/docker/Dockerfile.nodered container_name: betterframe-nodered restart: unless-stopped environment: