gpt4 book ai didi

node.js - EACCES:权限被拒绝,打开 '/usr/local/lib/node_modules/npm/bin/npm-cli.js'

转载 作者:行者123 更新时间:2023-12-02 19:18:13 24 4
gpt4 key购买 nike

您好先生,我是Docker的新手,我在使用ubuntu budgie(linux)20.04,我的docker版本是Docker version 18.09.9, build 1752eb3我已经使用快照包管理器安装了docker,路径是这样的/snap/bin/docker.machine /snap/bin/docker.compose /snap/bin/docker /snap/bin/docker.help我通过此链接在主机中安装了nodejs和npm
nodejs install link
我正在通过与docker制作单个nodejs express应用程序来学习docker。这是我的Dockerfile

FROM node:lts
USER node
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
ENV PATH=$PATH:/home/node/.npm-global/bin
WORKDIR /home/node
COPY package.json .
RUN npm install
COPY . .
CMD ['npm', 'start']

这是我的app.js文件
const express = require('express');
const app = express()

app.get('/', (req, res) => {
res.send('hello world')
})

app.listen(3000, () => {
console.log('app is renning at 3000');
})


当我开始从此dockerfile构建镜像时,出现此错误
internal/fs/utils.js:230
throw err;
^

Error: EACCES: permission denied, open '/usr/local/lib/node_modules/npm/bin/npm-cli.js'
at Object.openSync (fs.js:458:3)
at Object.readFileSync (fs.js:360:35)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1152:22)
at Module.load (internal/modules/cjs/loader.js:977:32)
at Function.Module._load (internal/modules/cjs/loader.js:877:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47 {
errno: -13,
syscall: 'open',
code: 'EACCES',
path: '/usr/local/lib/node_modules/npm/bin/npm-cli.js'
}
The command '/bin/sh -c npm install --only=prod' returned a non-zero code: 1


请告诉我我该如何解决。
谢谢。

最佳答案

我遇到了同样的问题,我尝试了几种解决方案,但是唯一的工作方式是更改docker版本

docker-ce|5:18.09.0~3-0~ubuntu-bionic|https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce|18.06.3~ce~3-0~ubuntu|https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce|18.06.2~ce~3-0~ubuntu|https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages

我正在使用 5:19.03.9~3-0~ubuntu-bionic,而我切换到 18.06.3~ce~3-0~ubuntu
我保留了相同的Dockerfile配置:
FROM node:10 
USER root
WORKDIR /home/node/app
COPY package.json .
RUN npm install

# Bundle app source COPY . /app

EXPOSE 8080 CMD [ "node", "server.js" ]

它返回:
Step 5/8 : RUN npm install
---> Running in 5b6cd0a9a7cd
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated

> nodemon@1.19.4 postinstall /home/node/app/node_modules/nodemon
> node bin/postinstall || exit 0

Love nodemon? You can now support the project via the open collective:
> https://opencollective.com/nodemon/donate

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN quiz-service@1.0.0 No description
npm WARN quiz-service@1.0.0 No repository field.

added 322 packages from 227 contributors and audited 323 packages in 21.573s

1 package is looking for funding
run `npm fund` for details

found 0 vulnerabilities

Removing intermediate container 5b6cd0a9a7cd
---> cc344027e126
Step 6/8 : COPY . /app
---> 10841d9cf0bf
Step 7/8 : EXPOSE 8080

您可以检查此链接以获取更多详细信息 on reinstalling docker

关于node.js - EACCES:权限被拒绝,打开 '/usr/local/lib/node_modules/npm/bin/npm-cli.js',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61967505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com