无法使用docker撰写软件包

我的networking应用程序使用Node.js和MongoDB。 我从泊坞窗镜像中心拉蒙戈图像 。 当我构build我的节点应用程序的图像时,它运行良好。 但是,当我启动容器使用撰写它给出了以下错误。 是不是应该从Dockerfile构build图像时安装包?

web_1 | module.js:457 web_1 | 扔呃;

web_1 | ^

web_1 |

web_1 | 错误:找不到模块'mongoose'

web_1 | 在Function.Module._resolveFilename(module.js:455:15)

web_1 | 在Function.Module._load(module.js:403:25)

web_1 | 在Module.require(module.js:483:17)

web_1 | 在要求(内部/ module.js:20:19)

web_1 | 在对象。 (/worklog/worklog.js:7:14)

web_1 | 在Module._compile(module.js:556:32)

web_1 | 在Object.Module._extensions..js(module.js:565:10)

web_1 | 在Module.load(module.js:473:32)

web_1 | 在tryModuleLoad(module.js:432:12)

web_1 | 在Function.Module._load(module.js:424:3)

Dockerfile

FROM node RUN mkdir -p /worklog WORKDIR /worklog RUN npm install mongoose \ express \ body-parser \ express-session \ method-override \ connect-mongo \ mongodb COPY login.html worklog.html workloglist.html worklog.js /worklog/ ENV NODE_VERSION 6.3.1 EXPOSE 4000 CMD npm, start 

泊坞窗,compose.yml

 db: image: mongo ports: - "27017:27017" command: "--smallfiles --logpath=/dev/null" web: build: . command: node worklog.js volumes: - .:/worklog ports: - "4000:4000" links: - db environment: PORT: 4000 

 volumes: - .:/worklog 

基本上可以将主机上的文件(包括/ worklog / node_modules)在内的所有安装到/ worklog的东西掩盖。 你可以试试

 volumes: - .:/worklog - /worklog/node_modules 

我认为覆盖从主机挂载的目录顶部的容器/ worklog / node_modules再次使node_modules可见的应用程序。