基本上,使用 WSL 与 VMware 框中的 Docker 服务器通信时遇到与 Docker 卷相关的问题。Docker 使用此设置运行良好,直到涉及到卷时,无论我尝试什么,我都会遇到此错误:
docker run -p 3000:3000 -v /app/node_modules -v $(pwd):/app 5932996c40dc
or
docker-compose up
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
我实际上在这里有一个问题:
这提供的解决方案(使用 VirtualBox)的操作如下:
我正在尝试使用 VMware 做类似的事情,因为我更喜欢使用它。除了这个 Docker VM 之外,我还有其他 VM,而且(对我来说)性能明显优于 VirtualBox。无论如何,我正在尝试通过执行以下操作在 VMware 中执行类似操作:
但仍然遇到同样的问题。引用的路径是项目所在的位置。在 Ubuntu、macOS 或使用 Hyper-V 时不会出现此问题。仅此设置。
那么我在这里做错了什么?
另外这里还有docker-compose.yml
:
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "3000:3000"
volumes:
- /app/node_modules
- .:/app
tests:
build:
context: .
dockerfile: Dockerfile.dev
volumes:
- /app/node_modules
- .:/app
command: ["npm", "run", "test"]
以下是Dockerfile.dev
:
FROM node:11.7.0-alpine
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "run", "start"]