如何在Docker中安装全局模块?

获取Error: EACCES: permission denied, open '/usr/local/lib/node_modules当试图在Error: EACCES: permission denied, open '/usr/local/lib/node_modules中安装全局模块时Error: EACCES: permission denied, open '/usr/local/lib/node_modules

 FROM node:latest RUN mkdir -p /code RUN npm i -g npm WORKDIR /code RUN npm set progress=false && npm install -g exp 

在官方文档中没有关于节点或https://forums.docker.com/的信息。

这是npm和exp模块之间的问题。 您可以使用纱线来安装模块

 MODULE 72: Module._load REQUEST path parent: /usr/local/lib/node_modules/exp/node_modules/decompress-zip/lib/file-details.js MODULE 72: load native module path ngrok - error unpacking binary { Error: EACCES: permission denied, open '/usr/local/lib/node_modules/exp/node_modules/@expo/ngrok/bin/ngrok' errno: -13, code: 'EACCES', syscall: 'open', path: '/usr/local/lib/node_modules/exp/node_modules/@expo/ngrok/bin/ngrok' } npm info lifecycle @expo/ngrok@2.2.8~postinstall: Failed to exec postinstall script npm WARN react-redux@5.0.6 requires a peer of react@^0.14.0 || ^15.0.0-0 || ^16.0.0-0 but none was installed. MODULE 38: Module._load REQUEST os parent: /usr/local/lib/node_modules/npm/lib/utils/error-handler.js MODULE 38: load native module os 

但是你可以用纱线来安装它

 $ yarn global add exp 

请参阅下面的问题了解更多详情

https://github.com/expo/exp/issues/59

在安装命令之前,您可以尝试以节点或root用户身份login,在运行之前添加“USER”命令:

 USER node 

要么

 USER root