【发布时间】:2018-11-15 12:50:33
【问题描述】:
先决条件
Linux 18.04
create-react-app 2.0
码头工人 19.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 start 工作得很好。
我已经尝试了很多在网上找到的解决方法:
- 重启电脑
- 删除node_modules文件夹并再次运行
npm i -
npm install/--save/包括Dockerfile中的--save的不同组合
它只是不起作用,我无法自己处理它。任何想法为什么会发生这种情况?
更新
很奇怪,但这段代码有效。我是 Docker 的菜鸟,所以我不知道有什么区别
docker run -it \
-v ${PWD}:/usr/src/app \
-v /usr/src/app/node_modules \
-p 3000:3000 \
--rm \
prov-app
【问题讨论】:
标签: reactjs docker docker-compose