Reactjs React.js Docker-未找到模块 先决条件
Linux18.04 创建反应应用程序2.0 docker19.09.0 DockerfileReactjs 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
# 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 in Dockerfile--save
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