【问题标题】:Permissions errors while using Nodejs使用 Nodejs 时出现权限错误
【发布时间】:2021-03-26 00:23:28
【问题描述】:

我在 docker 容器中使用 npm 和用户 root 但是我收到以下两个错误:

glob error [Error: EACCES: permission denied, scandir '/root/.npm/_logs'] {
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/root/.npm/_logs'
}

Error: EACCES: permission denied, open '/application/public/mix-manifest.json'
  errno: -13,
  syscall: 'open',
  code: 'EACCES',
  path: '/application/public/mix-manifest.json'
}

但是 root 是 .npm.npm/_logs 文件夹的所有者:

~/
drwxr-xr-x 4 root root 4096 Mar 25 09:12 .npm

~/.npm/
drwxr-xr-x 2 root root 4096 Mar 25 09:18 _logs

并且root 具有文件/application/public/mix-manifest.json 的读/写权限:

-rwxrwxr-x  1 www-data www-data  119 Mar 15 14:26 mix-manifest.json

我做错了什么?

我的 Dockerfile 包含:

# Node + NPM
RUN curl -kfsSL https://deb.nodesource.com/setup_15.x | bash -
RUN apt-get install -y nodejs

【问题讨论】:

  • 你能分享你的Dockerfile吗?
  • npm 位是RUN curl -kfsSL https://deb.nodesource.com/setup_15.x | bash - RUN apt-get install -y nodejs,但整个文件在这里:pastebin.com/gqcVqAf8
  • 您能否在这个有问题的curl 之前添加RUN w 并将答案粘贴到这里?
  • 它返回了一个读取错误和一个包列表上的解压失败,完全错误:pastebin.com/Re8fWTC1
  • 请编辑问题并将这些详细信息包含在问题本身中(不是作为指向其他地方的链接,也不是在 cmets 中)。

标签: node.js docker npm


【解决方案1】:

更改我的 dockerfile
# Node + NPM
RUN curl -fsSL https://deb.nodesource.com/setup_15.x | bash -
RUN apt-get install -y nodejs

# Node + NPM
RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get install -y nodejs

解决了问题。

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2016-05-03
    • 1970-01-01
    相关资源
    最近更新 更多