Closed rcarmo closed 3 months ago
Is the directory mounted on /data
writeable by uid 1000 (the node-red user)?
Yes, just checked it via the portainer console. That would have failed with an ERR_WRITE kind of error upon container launch as it bootstraps settings.js
(not my first rodeo).
Actually:
"OOMKilled": true,
Looks significant. Have you applied any memory limits to this container? This is most likely because npm has been killed for using too much memory.
Yes, but a similar environment with Node 18 works with the same restrictions, and this is just the sqlite
node I'm trying to deploy. I'll check the RAM budget for this node (this is a remote edge deployment). Meanwhile, this is the data dir on a fresh redeploy:
"Memory": 134217728,
That is only 128mb which is not going to cut it, especially as it's will be shared between Node-RED and npm
Well, Node 18 is better at this then. I will check whether I can deploy using npm
or just rsync
the installed packages (which. again, are working on a lab with just 128M).
And you can always use the nodered/node-red:latest-18 if you want a NodeJS 18 based container
But this is not a problem with the shipped Node-RED containers
Fair. I got it to work by asking the admin to increase allowed swap (there are edge environments where RAM is at a premium).
What are the steps to reproduce?
I deployed a fresh stack in Portainer (inspect dump at the bottom) and tried to install nodes (the example below is for the
sqlite
node, which is smaller and self-contained when compared to the other ones). The same happens when I try to install any other node. A container image I maintain with 3.1.6 and Node 18 does not exhibit this behavior (but I cannot use mine in this environment).What happens?
What do you expect to happen?
I should be able to install nodes without errors.
Please tell us about your environment:
[x] Platform/OS: macOS Sonoma, Fedora 39, Windows 11 - basically irrelevant for this case
[x] Browser: Safari, Firefox, Edge - same
[x] Server: Ubuntu Linux 22.04 with Docker CE and latest Portainer.