我在学习docker,并且遇到了一些处理nodejs应用程序上的音量的麻烦。未找到Docker卷和package.json
其实,我有一个简单的应用程序,我想测试每次我重新启动我的容器。
这样一来,我有以下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目录/应用程序内的package.json文件(但它就是我的卷所在,它应该是正确的没有)
npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
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命令,而不是体积,它的伟大工程,我能看到泊坞窗容器内
NB2我的NodeJS测试:我为上窗户10,码头v1.12.0
有很多方法可以解决这个问题,比如在引导时通过向VM的启动bash脚本添加行来将卷挂载到VM上https://stackoverflow.com/a/32030385/404699 – steampowered