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

问题描述 投票:2回答:2

有点卡住了。通过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

我也将WSL更改为,而不是将路径CHOKIDAR_USEPOLLING=true ...设为CHOKIDAR_USEPOLLING=true

node.js docker npm
2个回答
2
投票

我还通过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中为默认虚拟机配置另一个共享文件夹,如下面的屏幕快照所示:/root/.npm/_logs/2019-01-30T23_04_17_890Z-debug.log


1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.