You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署React应用报错:sh: react-scripts: not found

Docker化React应用启动报错:sh: react-scripts: not found 解决方案

问题根源

构建容器成功但启动时找不到react-scripts,核心原因是本地目录挂载覆盖了容器内的依赖文件:
你在docker-compose.yml中配置了- .:/app,将本地项目目录直接挂载到容器的/app目录。容器构建阶段安装的node_modules会被本地目录覆盖,如果本地未安装依赖(没有node_modules文件夹),启动时自然找不到react-scripts。

解决方案

方案1:保留容器内的node_modules(推荐)

修改docker-compose.yml的volumes配置,添加匿名卷排除node_modules,避免本地目录覆盖容器内的依赖:

services:
  tmf-dev:
    # ... 其他配置不变
    volumes:
      - .:/app
      - /app/node_modules  # 新增:保留容器内的node_modules

方案2:本地预先安装依赖

在本地项目根目录执行以下命令,确保本地存在node_modules:

npm install

之后再运行docker-compose up,挂载后本地的node_modules会被带入容器,即可找到react-scripts。但此方法依赖本地Node环境,不如方案1灵活。

方案3:优化开发环境Dockerfile

开发环境无需提前执行build,简化docker/Dockerfile.dev,确保构建时完成依赖安装:

FROM node:18.13.0-alpine
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install -g npm@9.8.0 && npm install  # 直接安装依赖
COPY . ./
EXPOSE 3000
CMD ["npm","run","start"]

配合方案1的volumes配置,既能实现代码热更新,又能保证依赖正常加载。

内容的提问来源于stack exchange,提问作者ashraf shahadat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 02:32:06