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

Docker启动React项目镜像容器时报react-scripts: not found错误

问题原因

报错sh: react-scripts: not found的核心是容器环境内未安装项目所需的react-scripts依赖,你的Dockerfile存在明显配置缺失:拷贝package.json后仅执行了全局升级npm的操作,没有运行npm install安装项目声明的本地依赖,直接拷贝全量代码后启动自然找不到对应执行脚本。
另外两个高频触发场景可同步排查:

  • 项目根目录未配置.dockerignore,如果本地存在node_modules目录,COPY . .指令会将宿主机(Windows/macOS)平台编译的依赖包直接拷入Linux容器,平台二进制不兼容也会触发同类报错
  • 若存在package-lock.json版本与Node.js 16适配的npm版本不匹配的情况,也可能导致依赖安装不全
修复方案
  1. 首先在项目根目录创建.dockerignore文件,写入以下规则,避免本地无关文件被打入镜像:
node_modules
build
.git
.gitignore
npm-debug.log
.DS_Store
  1. 修正Dockerfile配置,补充依赖安装步骤,优化后配置如下(调整了依赖文件拷贝顺序,可复用Docker构建缓存加快后续构建速度):
FROM node:16.14-alpine3.14 

WORKDIR /frontend

# 优先拷贝依赖声明文件,构建时仅当依赖配置变更才会重新执行安装
COPY package*.json ./

# 升级npm后安装项目全部依赖
RUN npm install -g npm@8.12.1 && npm install

# 拷贝剩余项目源码
COPY . .

EXPOSE 3000

CMD [ "npm", "start" ]
  1. 执行以下命令跳过缓存重新构建镜像,避免旧构建层的影响:
docker build --no-cache -t react-frontend .
  1. 构建完成后正常启动容器即可。如果仍有报错,可进入运行中的容器执行ls node_modules/.bin | grep react-scripts,确认依赖包是否正常安装到本地依赖目录。

内容的提问来源于stack exchange,提问作者Ferhat Adibelli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 09:57:17