Docker 错误:没有这样的文件或目录,打开 '/package.json'

Posted

技术标签:

【中文标题】Docker 错误:没有这样的文件或目录,打开 \'/package.json\'【英文标题】:Docker error: no such file or directory, open '/package.json'Docker 错误:没有这样的文件或目录,打开 '/package.json' 【发布时间】:2019-01-19 12:49:30 【问题描述】:

我正在尝试在 docker 中运行节点映像,但出现此错误:

npm WARN saveError ENOENT: no such file or directory, open '/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/package.json'
npm WARN !invalid#2 No description
npm WARN !invalid#2 No repository field.
npm WARN !invalid#2 No README data
npm WARN !invalid#2 No license field.

这是我的 docker 文件。我想把我所有的项目文件放在容器的 /home/app/ 文件夹中:

# Use an official node runtime as a parent image
FROM node:10

# Set the working directory to /home/app
#WORKDIR /home/app/

# Bundle app source
COPY . /home/app/

# If you are building your code for production
# RUN npm install --only=production
RUN npm install

# Make port 8000 available to the world outside this container
EXPOSE 8000

CMD npm run dev

我在 Windows 上,我使用 hyper-V。我的 package.json 与我的 Dockerfile 处于同一级别。

有什么想法吗?

谢谢

【问题讨论】:

对于遇到此问题的其他人,请确保您没有使用 docker-compose 卷覆盖目录 【参考方案1】:

npm install命令运行时,工作目录大概是/,这里没有package.json

只需在您的 Dockerfile 中取消注释您的行 WORKDIR /home/app/

【讨论】:

【参考方案2】:

我的愚蠢错误是我在尝试运行我的 npm 命令之前忘记指定我的WORKDIR...希望这也对某人有所帮助! 请务必确保您的WORKDIR 对于CMD 行是准确的...

【讨论】:

以上是关于Docker 错误:没有这样的文件或目录,打开 '/package.json'的主要内容,如果未能解决你的问题,请参考以下文章

为啥 docker-compose build 没有给我这样的文件或目录错误消息

docker-compose 错误:FileNotFoundError:[Errno 2] 没有这样的文件或目录

带有tensorflow gpu的docker - ImportError:libcublas.so.9.0:无法打开共享对象文件:没有这样的文件或目录

docker-compose 无法以 npm ERR 启动! enoent ENOENT:没有这样的文件或目录,打开'/usr/src/app/package.json'

docker env: bash\r: 没有这样的文件或目录

Rod 在 Docker Alpine 中运行得到错误“chrome-linux/chrome:没有这样的文件或目录”