npm ERR! enoent ENOENT:没有这样的文件或目录,请打开“ /app/package.json”

时间:2019-01-30 23:29:16

标签: node.js docker npm

在此卡住了一点。通过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

enter image description here

我用来生成映像的命令是docker build -f Dockerfile.dev .,然后从本地版本中删除node_modules

这是我的仓库中包含Dockerfile的仓库的副本:https://github.com/ishraqiyun77/docker_kubernetes

在Windows 10 Pro的Linux子系统(WSL)的Windows子系统中运行,docker-client在WSL中运行,docker-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

2 个答案:

答案 0 :(得分:1)

我也正在通过Udemy.com在Docker上学习Grider课程。我遇到了和你完全一样的问题。由于我使用的是Windows 10家庭版,因此无法使用Docker桌面(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中为默认虚拟机配置另一个共享文件夹,如以下屏幕快照所示: Configure Shared Folder for Default VM

答案 1 :(得分:1)

我曾尝试过将文件所在的位置通过虚拟盒子添加到共享文件夹中,正如Wenyan提到的那样,但这没有用。

对我有用的是,我将代码移动到C:// Users // {username},因为在Virtual Box中提到了C驱动器。移动代码后,我在运行docker命令时没有任何问题。