我想我不是第一个遇到这个问题的人,但我不认为 sultion 对我有用。
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
在通过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
覆盖目录。
如果您这样做,您需要在主机上运行 npm install
关于node.js - docker-compose 看不到来自 npm 的 node_modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32509513/