【发布时间】: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