首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法安装Node-red容器

无法安装Node-red容器
EN

Stack Overflow用户
提问于 2018-09-24 22:17:37
回答 3查看 2.3K关注 0票数 1

我尝试了这么多小时,尝试了很多我现在必须要问的事情。在我的码头上我不能在上面跑。我一直收到共享卷的权限错误。我的另一个"fhem“容器使用相同的文件夹权限运行。所以我不明白为什么这是nodered的问题。

目前我使用的是最新版本的ubuntu。

我想将节点实例中的/data文件夹存储在/opt/docker-nodered中,但这不起作用。

我尝试使用以下命令安装它:

代码语言:javascript
复制
docker run -it -p 1880:1880 -v /opt/docker-nodered/:/data --name nodered nodered/node-red-docker

这里的权限如下:

代码语言:javascript
复制
stefmde@homeautomation:/opt$ ll
total 16
drwxr-xr-x  4 stefmde stefmde 4096 Sep 24 09:52 ./
drwxr-xr-x 23 root    root    4096 Sep 21 18:56 ../
drwxr-xr-x 10 stefmde stefmde 4096 Sep 22 12:48 docker-fhem/
drwxr-xr-x  2 stefmde stefmde 4096 Sep 24 14:01 docker-nodered/

我用下面的代码对它们进行了更改,试图让它运行起来:

代码语言:javascript
复制
chown -R stefmde:stefmde /opt/docker-nored

但是不管我怎么尝试,我总是得到相同的错误:

代码语言:javascript
复制
stefmde@homeautomation:/opt/docker-nodered$ sudo docker run -it -p 1880:1880 -v /opt/docker-nodered/:/data --name nod ered nodered/node-red-docker

> node-red-docker@1.0.0 start /usr/src/node-red
> node $NODE_OPTIONS node_modules/node-red/red.js -v $FLOWS "--userDir" "/data"

fs.js:642
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: EACCES: permission denied, open '/data/settings.js'
    at Error (native)
    at Object.fs.openSync (fs.js:642:18)
    at copyFileFallback (/usr/src/node-red/node_modules/fs-extra/lib/copy-sync/copy-sync.js:93:18)
    at copyFile (/usr/src/node-red/node_modules/fs-extra/lib/copy-sync/copy-sync.js:85:10)
    at onFile (/usr/src/node-red/node_modules/fs-extra/lib/copy-sync/copy-sync.js:58:12)
    at getStats (/usr/src/node-red/node_modules/fs-extra/lib/copy-sync/copy-sync.js:51:39)
    at startCopy (/usr/src/node-red/node_modules/fs-extra/lib/copy-sync/copy-sync.js:41:10)
    at Object.copySync (/usr/src/node-red/node_modules/fs-extra/lib/copy-sync/copy-sync.js:36:10)
    at Object.<anonymous> (/usr/src/node-red/node_modules/node-red/red.js:104:20)
    at Module._compile (module.js:577:32)

npm ERR! Linux 4.15.0-34-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" "--" "--userDir" "/data"
npm ERR! node v6.14.4
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! node-red-docker@1.0.0 start: `node $NODE_OPTIONS node_modules/node-red/red.js -v $FLOWS "--userDir" "/data"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-red-docker@1.0.0 start script 'node $NODE_OPTIONS node_modules/node-red/red.js -v $FLOWS  "--userDir" "/data"'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-red-docker package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node $NODE_OPTIONS node_modules/node-red/red.js -v $FLOWS "--userDir" "/data"
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-red-docker
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls node-red-docker
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /usr/src/node-red/npm-debug.log

Npm.debug.log文件不存在

我尝试了不同的权限集,我检查了我的用户的1000的UUID,我尝试手动运行"npm install“,检查github上的不同错误票证,尝试不起作用的"-- user "-Flag,运行带和不带"sudo”的docker命令等等。

有没有人能帮帮我或者告诉我我哪里做错了?我希望你能:)

EN

回答 3

Stack Overflow用户

发布于 2018-09-24 22:31:57

节点红色的docker容器以用户node-red身份运行,许多其他docker容器以默认用户身份运行应用程序,而默认用户恰好是根用户。

目前,只有用户stefmderoot可以写docker-nodered目录(因为根用户可以写到任何地方)。

快速的解决方案是使docker-nodered可由任何人写入(chmod o+w docker-nodered),这应该可以工作。

较长期的解决方案是找出node-red用户的UID是什么,将一个组添加到具有与node-red具有相同UID的成员的主机操作系统中,并使该目录属于该组,然后使其可写(chmod g+w docker-nodered)

票数 2
EN

Stack Overflow用户

发布于 2021-06-10 20:42:56

到目前为止,最简单的方法是将Node-RED数据文件夹的所有权更改为用户1000和组1000,因为这是在Node-RED docker容器中硬编码的:

代码语言:javascript
复制
sudo chown 1000:1000 name-of-node-red-data-folder
票数 1
EN

Stack Overflow用户

发布于 2020-06-05 10:39:04

我已经使用docker-compose解决了这个问题。我已经创建了包含以下内容的文件docker-compose-node-red.yml

代码语言:javascript
复制
version: "3.7"

services:
  node-red:
    image: nodered/node-red:latest
    ports:
      - "1880:1880"
    volumes:
      - "/path/to/a-nodered-project:/data"

然后,我跑

代码语言:javascript
复制
$ docker-compose -f docker-compose-node-red.yml up

在文件夹/path/to/a-nodered-project中,我有一个flows.json文件和其他文件。从节点红色容器的角度来看,一切都是可访问的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52481359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档