首页 > 解决方案 > npm 错误!enoent ENOENT:没有这样的文件或目录,打开'/app/package.json'

问题描述

有点卡在这个上。通过 Udemy.com 参加关于 Docker 的 Grider 课程。

当我这样做时,我只是不断收到以下错误:

docker run -p 3000:3000 -v /app/node_modules -v $(pwd):/app 5932996c40dc

npm ERR! path /app/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-01-30T23_04_17_890Z-debug.log

我回显该命令,因为我想确切地看到它试图执行的内容并返回为:

docker run -p 3000:3000 -v /app/node_modules -v /mnt/c/projects/courses/docker_kubernetes/frontend:/app 5932996c40dc

我在没有 的情况下运行图像,-v以便我可以启动容器并exec -it进入它以查看容器上的内容。它确实显示了容器内的所有内容。它将所有内容复制到/app容器中。

在此处输入图像描述

我用来构建映像的命令是从本地版本docker build -f Dockerfile.dev .中删除。node_modules

这是我的存储库的副本,其中包含 Dockerfile 等:https ://github.com/ishraqiyun77/docker_kubernetes 。

在 Windows 10 Pro 上的 Windows Subsystem for Linux (WSL)docker-client中运行,在 WSLdocker-daemon中运行,在 VMWare Workstation Player 15 中运行。我确实.env使用CHOKIDAR_USEPOLLING=true. 还不相信这个配置是问题,但谁知道呢,它可能是。

此外,/root/.npm/_logs/2019-01-30T23_04_17_890Z-debug.log容器或本地文件系统中都没有。

我还将 WSL 更改为,而不是将路径/mnt/c/projects... 更改为/c/projects.

标签: node.jsdockernpm

解决方案


我还通过 Udemy.com 参加了关于 Docker 的 Grider 课程。我遇到了和你完全相同的问题。由于我使用的是 Windows 10 家庭版,所以不能使用 Docker Desktop (Windows),而必须使用 Docker Toolbox。

就我而言,我正在尝试运行:

xwy52@JFC-DELL MINGW64 /d/Git/LearnDevOps/docker/images/frontend (master)
$ docker run -p 3000:3000 -v /app/node_modules -v $(pwd):/app 5d83ae77af14

我遇到了你的问题,我的解决方案是为 VirtualBox 中的默认虚拟机配置另一个共享文件夹,如下图所示: 为默认 VM 配置共享文件夹


推荐阅读