【发布时间】:2020-06-22 12:50:02
【问题描述】:
您好先生,我是 docker 新手,我正在使用 ubuntu budgie(linux) 20.04 我的 docker 版本是
Docker version 18.09.9, build 1752eb3
我已经使用 snap 包管理器安装了 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
请告诉我如何解决这个问题。 谢谢。
【问题讨论】:
-
您似乎在这个问题上附加了两个图像,您将在其中放置错误文本和 Dockerfile。你能删除这些图片并用这些东西的实际文本替换它们吗?
-
请立即查看
-
更新到 Docker 版本 19,如 stackoverflow.com/questions/61990562/…