docker-compose不能从npm中看到node_modules

我想我不是第一个有这个问题的人,但是我没有看到对我有用的东西。

docker-compose.yml文件

web: build: . volumes: - .:/src ports: - "3000:3000" 

Dockerfile

 FROM node:0.12 RUN npm install -g mocha RUN mkdir /src WORKDIR /src ADD package.json /src/package.json RUN npm install COPY . /src EXPOSE 3000 CMD node server.js 

Aand成功构build后通过docker-compose up运行,我有和错误:

 web_1 | Error: Cannot find module 'express' web_1 | at Function.Module._resolveFilename (module.js:336:15) web_1 | at Function.Module._load (module.js:278:25) web_1 | at Module.require (module.js:365:17) web_1 | at require (module.js:384:17) web_1 | at Object.<anonymous> (/src/server.js:1:77) web_1 | at Module._compile (module.js:460:26) web_1 | at Object.Module._extensions..js (module.js:478:10) web_1 | at Module.load (module.js:355:32) web_1 | at Function.Module._load (module.js:310:12) web_1 | at Function.Module.runMain (module.js:501:10) 

任何想法可能是错的? 我已经花了超过3小时的这个任务,我不知道为什么这个不起作用(新手对docker工人)。

我想你是通过使用一个volume: - .:/src覆盖目录volume: - .:/src

如果你这样做,你需要在主机上运行npm install