【问题标题】:React.js Docker - Module not foundReact.js Docker - 找不到模块
【发布时间】: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


    【解决方案1】:

    一切正常,但安装新的 docker 包按预期停止工作。每次我跑 docker-compose up 失败,出现“未找到模块”错误。

    您需要重建映像才能安装该软件包。 docker-compose build,然后是docker-compose up

    编辑

    根据您的更新,我意识到问题是您的旧 node_module 卷在构建之间持续存在。在up 之前尝试docker-compose down -v。

    【讨论】:

    • 在第一次构建后安装的每个新包上构建和构建容器并不是一个好主意。
    • 我不明白你的建议
    • 这个也没有,也不炒
    • 如果你在 docker 网络中有 db,你必须每次都添加数据。所以从长远来看,这不是很可行
    【解决方案2】:

    代替:

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

    试试:

    volumes:
      - ./:/usr/src/app
      - /usr/src/app/node_modules
    

    【讨论】:

    • 不,没有区别
    猜你喜欢
    • 2018-12-07
    • 2020-12-19
    • 2021-08-06
    • 1970-01-01
    • 2021-03-28
    • 2021-10-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多