Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js docker容器中的空白节点\u模块_Node.js_Docker_Docker Compose - Fatal编程技术网

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。非常感谢:)