在此卡住了一点。通过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的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
。
答案 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命令时没有任何问题。