FROM nodered/node-red:latest # Switch to root for setup USER root # Copy EVOLV directly into where Node-RED looks for custom nodes COPY package.json /data/node_modules/EVOLV/package.json COPY nodes/ /data/node_modules/EVOLV/nodes/ # Rewrite generalFunctions dependency to local file path (no-op if already local) RUN sed -i 's|"generalFunctions": "git+https://[^"]*"|"generalFunctions": "file:./nodes/generalFunctions"|' \ /data/node_modules/EVOLV/package.json # Fix ownership for node-red user RUN chown -R node-red:root /data USER node-red # Install EVOLV's own dependencies inside the EVOLV package directory WORKDIR /data/node_modules/EVOLV RUN npm install --ignore-scripts --production # Copy test flows into Node-RED data directory COPY --chown=node-red:root test/e2e/flows.json /data/flows.json # Reset workdir to Node-RED default WORKDIR /usr/src/node-red EXPOSE 1880