无法使用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可见的应用程序。