Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 找不到Docker卷和package.json大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习docker,我在处理nodejs应用程序上的卷时遇到了一些麻烦.

实际上,我有一个简单的应用程序,我想每次重新启动容器时测试.

这样,我有以下dockerfile:

FROM node:4-onbuild

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

CMD [ "npm","test" ]

现在,我使用以下方法构建了图像:

docker build -t myapp .

我尝试使用以下脚本运行它:

docker run -v //c/Project/nodejs/my-app:/usr/src/app my-app

要么

docker run -v /c/Project/nodejs/my-app:/usr/src/app my-app

甚至

docker run -v c:/Project/nodejs/my-app:/usr/src/app my-app

我有以下错误告诉我,我在/usr/src / app中没有package.json文件(但它是我的卷所在的位置,它应该是对的吗?)

npm info it worked if it ends with ok
npm info using npm@2.15.9
npm info using node@v4.5.0
npm ERR! Linux 4.4.15-moby
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "test"
npm ERR! node v4.5.0
npm ERR! npm  v2.15.9
npm ERR! path /usr/src/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 '/usr/src/app/package.json'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! Please include the following file with any support request:
npm ERR!     /usr/src/app/npm-debug.log

注意:如果我使用COPY命令而不是卷,它工作得很好,我可以在docker容器内看到我的nodejs测试

NB2:我在Windows 10上,docker v1.12.0

解决方法

Docker for Windows在运行容器的VM中运行(它仍然需要Linux主机).挂载主机卷时,该卷将安装在Linux主机上.从Linux VM挂载到父Windows操作系统的唯一目录是c:/ Users,它在VM中显示为/ c / Users(参见 docker’s volume tutorial).将项目移动到Users下的目录并挂载它.

文件夹/丢失文件的原因是,当您将不存在的主机文件夹/文件装入容器时,这是认设置.在您的情况下,VM中不存在/ c / Project. COPY有效,因为在构建开始之前,构建会将当前文件夹(除了.dockerignore条目)发送到Docker引擎(在VM中运行).这是通过API传输而不是进行卷装入.

大佬总结

以上是大佬教程为你收集整理的node.js – 找不到Docker卷和package.json全部内容,希望文章能够帮你解决node.js – 找不到Docker卷和package.json所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。