Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Reactjs React.js Docker-未找到模块 先决条件_Reactjs_Docker_Docker Compose - Fatal编程技术网

Reactjs React.js Docker-未找到模块 先决条件

Reactjs React.js Docker-未找到模块 先决条件,reactjs,docker,docker-compose,Reactjs,Docker,Docker Compose,Linux18.04 创建反应应用程序2.0 docker19.09.0 Dockerfile # base image FROM node:9.6.1 # set working directory RUN mkdir /usr/src/app WORKDIR /usr/src/app # add `/usr/src/app/node_modules/.bin` to $PATH ENV PATH /usr/src/app/node_modules/.bin:$PATH ADD packa

Linux18.04

创建反应应用程序2.0

docker19.09.0

Dockerfile

# base image
FROM node:9.6.1

# set working directory
RUN mkdir /usr/src/app
WORKDIR /usr/src/app

# add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH
ADD package.json /package.json

# install and cache app dependencies
COPY package.json /usr/src/app/package.json
RUN npm install --save --silent
RUN npm install react-scripts@latest -g --silent

# start app
CMD ["npm", "start"]
docker-compose.yml

version: '3.5'

services:

  provisioning-app:
    container_name: prv-app
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - '.:/usr/src/app'
      - '/usr/src/app/node_modules'
    ports:
      - '3000:3000'
    environment:
      - NODE_ENV=development
问题 一切都很好,但在安装了一个新的软件包后,docker停止了工作。每次运行
docker compose up
时,它都会失败,并出现“找不到模块”错误。 而
npm启动
工作正常。 我在网上尝试了很多解决方法:

  • 重启电脑
  • 删除node_modules文件夹并再次运行
    npm i
  • npm安装的不同组合/
    --save
    /包括--save in Dockerfile
它就是不起作用,我不能自己处理。你知道为什么会这样吗

更新 奇怪的是,这段代码是有效的。我是Docker的新手,所以我不知道有什么不同

docker run -it \
  -v ${PWD}:/usr/src/app \
  -v /usr/src/app/node_modules \
  -p 3000:3000 \
  --rm \
  prov-app
而不是:

volumes:
  - '.:/usr/src/app'
  - '/usr/src/app/node_modules'
尝试:

一切都很好,但是在安装了一个新的 包docker按预期停止工作。每次我跑步 docker撰写失败,出现“未找到模块”错误

您需要重建映像才能安装该软件包<代码>docker compose build,然后
docker compose up

编辑


根据您的更新,我意识到问题在于您的旧node_模块卷在构建之间持续存在。尝试
docker compose down-v
然后再
up

在第一次构建后安装的每个新包上构建和构建容器不是一个好主意。我不明白你在暗示什么,这一个也没有,也不管用,这没什么区别
volumes:
  - ./:/usr/src/app
  - /usr/src/app/node_modules