Node.js docker容器中的空白节点\u模块
我有以下文件:Node.js docker容器中的空白节点\u模块,node.js,docker,docker-compose,Node.js,Docker,Docker Compose,我有以下文件: FROM node:8.2.1 RUN mkdir -p /app WORKDIR /app COPY package.json ./package.json RUN npm -q install COPY . /app RUN npm -q install nodemon babel-cli node-gyp create-react-app react-scripts babel-preset-es2015 -g EXPOSE 3000 EXPOSE 3001 CMD ["
FROM node:8.2.1
RUN mkdir -p /app
WORKDIR /app
COPY package.json ./package.json
RUN npm -q install
COPY . /app
RUN npm -q install nodemon babel-cli node-gyp create-react-app react-scripts babel-preset-es2015 -g
EXPOSE 3000
EXPOSE 3001
CMD ["npm", "run", "startServer"]
和docker-compose.yml:
version: "2"
services:
web:
build: .
volumes:
- ./:/app
ports:
["3000:3000", "3001:3001"]
links:
[ mongo ]
mongo:
image: mongo
ports:
[ "27017:2701" ]
当我进入我看到的web_容器时,节点模块文件夹是空的。我试图更改Dockerfile中命令的顺序,但没有帮助。我还尝试直接在容器中运行“npm安装”,这是可行的,但我不想在每次构建之后都这样做。任何帮助都将不胜感激。我认为撰写文件中的音量命令让您感到困惑。由于您基本上是使用宿主文件覆盖整个项目,DockerFile中的命令不会产生任何效果,因为随后会装入卷并替换内容 试着在没有音量部分的情况下运行整个程序,你会看到它在工作
您仍然可以使用这些卷,但您需要在主机上安装node_模块。Yaa。非常感谢:)