node-red-docker: Unable to run 2.x.x due to permission errors. v1.3.7 is fine.
Current Behavior
What has changed between 1.3.7 and 2.x.x regarding permissions to write to the /data volume?
Running any 2.x.x nodred version in my docker fails with the error:
Error: EPERM: operation not permitted, copyfile '/data/.config.nodes.json' -> '/data/.config.nodes.json.backup'
However, running 1.3.7 has no issues.
I have read and followed every article I can find, including: https://nodered.org/docs/getting-started/docker#managing-user-data https://github.com/node-red/node-red-docker/wiki/Permissions-and-Persistence
Where mounting an external folder as the data volume, I have ensured it’s owner and group is 1000:1000
[dockuser@TS870Pro1 nodered]$ ls -lan
total 32
drwxrwxrwx 3 1000 1000 4096 2022-04-29 23:45 ./
drwxrwxrwx 42 0 0 4096 2022-04-29 23:43 ../
drwxrwxrwx 3 1000 1000 4096 2022-04-30 00:06 data/
-rwxrwxrwx 1 1000 1000 1541 2022-04-29 23:50 docker-compose.yml*
-rwxrwxrwx 1 1000 1000 620 2022-04-27 23:47 .env*
I have tried numerous variations on the startup commands in the documentation.
$ history | grep docker\ run
1057 docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
1065 docker run -it -p 1880:1880 -v node_red_data:/data --user 1000:1000 --name mynodered nodered/node-red
1072 docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
1078 docker run -it -p 1880:1880 -v node_red_data:/data --user 1000 --name mynodered nodered/node-red
1085 docker run -it -p 1880:1880 -v /share/Container/nodered/data:/data --name mynodered nodered/node-red --user 1000
1086 docker run -it -p 1880:1880 -v /share/Container/nodered/data:/data --name mynodered nodered/node-red
1091 docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red -u node-red:dialout
1101 docker run -it -p 1880:1880 -v myNodeREDdata:/data --name mynodered nodered/node-red
1102 docker run -it -p 1880:1880 -v myNodeREDdata:/data --name mynodered nodered/node-red:latest-minimal
1135 docker run -d -p 1880 nodered/node-red
1092 docker run -it -p 1880:1880 --name mynodered nodered/node-red
Expected Behavior
The server will run as expected.
30 Apr 12:25:17 - [info] Server now running at http://127.0.0.1:1880/
30 Apr 12:25:17 - [info] Starting flows
30 Apr 12:25:17 - [info] Started flows
Steps To Reproduce
Try to spin up any nodered 2.x.x version and it fails…
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
30 Apr 12:02:03 - [info] Node-RED version: v2.2.2
30 Apr 12:02:03 - [info] Node.js version: v14.18.2
30 Apr 12:02:03 - [info] Linux 4.2.8 x64 LE
30 Apr 12:02:03 - [info] Loading palette nodes
30 Apr 12:02:05 - [error] Failed to start server:
30 Apr 12:02:05 - [error] Error: EPERM: operation not permitted, copyfile '/data/.config.nodes.json' -> '/data/.config.nodes.json.backup'
Try the same for v1.3.7 and it is successful.
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red:1.3.7
30 Apr 12:05:00 - [info] Node-RED version: v1.3.7
30 Apr 12:05:00 - [info] Node.js version: v10.24.1
30 Apr 12:05:00 - [info] Linux 4.2.8 x64 LE
30 Apr 12:05:00 - [info] Loading palette nodes
30 Apr 12:05:02 - [info] Settings file : /data/settings.js
30 Apr 12:05:02 - [info] Context store : 'default' [module=memory]
30 Apr 12:05:02 - [info] User directory : /data
30 Apr 12:05:02 - [warn] Projects disabled : editorTheme.projects.enabled=false
30 Apr 12:05:02 - [info] Flows file : /data/flows.json
30 Apr 12:05:02 - [info] Starting flows
30 Apr 12:05:02 - [info] Started flows
30 Apr 12:05:02 - [info] Server now running at http://127.0.0.1:1880/
Example flow
No response
Environment
- Node-RED version: v2.2.2
- Node.js version: v14.18.2
- npm version:
- Platform/OS: QNAP Docker
QNAP TS-870 Pro QTS 4.3.6.1965 [2022/03/02] Docker v17.09.1-ce, build 0bbe3acx
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Reactions: 2
- Comments: 19 (8 by maintainers)
Had the same problem. Did a
chown -R 1000:1000 *
andchown -R 1000:1000 .*
(for the files starting with “.”) in the mounted volume and it worked