在这个问题上有点卡住了。通过 Udemy.com 参加有关 Docker 的 Grider 类(class)。
当我这样做时,我总是收到以下错误:
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
在 WSL 中运行,docker-daemon
在 VMWare Workstation Player 15 中运行。我确实使用 CHOKIDAR_USEPOLLING=true
制作了 .env
以达到良好的效果。 。尚不确信此配置是问题所在,但谁知道,它可能是问题。
此外,容器或本地文件系统中都没有 /root/.npm/_logs/2019-01-30T23_04_17_890Z-debug.log
。
我还将 WSL 更改为 /mnt/c/projects
...,而不是路径 /c/projects
。
最佳答案
我还通过 Udemy.com 参加有关 Docker 的 Grider 类(class)。我遇到了和你完全相同的问题。由于我使用的是Windows 10家庭版,所以无法使用Docker Desktop (Windows),只能使用Docker Toolbox。
就我而言,我正在尝试运行:
xwy52@JFC-DELL MINGW64/d/Git/LearnDevOps/docker/images/frontend(主)
$ docker run -p 3000:3000 -v/app/node_modules -v $(pwd):/app 5d83ae77af14
我遇到了你的问题,我的解决方案是为 VirtualBox 中的默认虚拟机配置另一个共享文件夹,如下图所示: Configure Shared Folder for Default VM
关于node.js - npm 错误! enoent ENOENT : no such file or directory, 打开 '/app/package.json',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54451141/