【问题标题】:permission denied in DockerfileDockerfile 中的权限被拒绝
【发布时间】:2020-10-18 01:32:36
【问题描述】:

尝试构建我的 dockerfile,但出现权限被拒绝错误。 该项目是一个nest.js 服务器。这是dockerfile:

FROM node:12.13-alpine
WORKDIR /usr/src/app
COPY package.json .
RUN npm install   <<< this fails
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "run", "start:prod"]

并且错误(在 npm 安装上)是:

internal/fs/utils.js:220
    throw err;
    ^

Error: EACCES: permission denied, open '/usr/local/lib/node_modules/npm/bin/npm-cli.js'
    at Object.openSync (fs.js:440:3)
    at Object.readFileSync (fs.js:342:35)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:994:22)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)
    at internal/main/run_main_module.js:17:11 {
  errno: -13,
  syscall: 'open',
  code: 'EACCES',
  path: '/usr/local/lib/node_modules/npm/bin/npm-cli.js'

有什么想法吗?

【问题讨论】:

  • 我不会在/usr/* 卷中放东西?
  • 谢谢。将WORKDIR更改为/home/node或只是/app,错误是一样的。还有其他建议吗?
  • 致以 RUN mkdir -p /home/node/app && chown.... 开头给我答案的人,然后删除了他的答案...您的解决方案有效,谢谢!我的 docker 安装很糟糕。重新安装 docker 后,您的解决方案有效。
  • 你是否也用'npm'安装了依赖项?我遇到了同样的问题,我用'yarn install'安装了node_modules,我的dockerfile说'npm install',所以我改变了我的dockerfile并且它工作了。
  • 感谢@Dr.G,这个问题已经解决了,见下文。谢谢!

标签: docker dockerfile nestjs


【解决方案1】:

解决了。解决方案分两步:

  1. 重新安装 docker。
  2. 将所有者更改为节点,如下所示:
FROM node:10
RUN mkdir -p /home/node/app && chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package.json .
USER node
RUN npm install
...

【讨论】:

猜你喜欢
  • 2021-12-20
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-06-11
  • 1970-01-01
  • 2016-02-21
  • 2021-03-07
  • 1970-01-01
相关资源
最近更新 更多