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

Jenkins内置节点内存限制问题:Docker环境下构建create-react-app失败

Jenkins容器中React项目构建卡死问题排查方案

问题概况

  • 特权模式Docker容器运行Jenkins实例,已稳定运行1年
  • 基于create-react-app+MUI的项目构建异常:npm install可正常完成,但执行npm run build时系统完全卡死
  • 调整JVM堆内存至4GB(配置JAVA_OPTS、MAVEN_OPTS并在内置节点生效)后,仅能触发构建取消操作,仍无法完成构建
  • 系统显示可用内存为4GB,但构建过程中内存使用率从未超过约200MB,怀疑内置节点进程被限制为200MB
  • 已尝试在构建命令中添加--max-old-space=768,无效果

内存使用率截图

排查与解决步骤

1. 配置Node.js进程内存限制

进入Manage Jenkins -> Manage Nodes and Clouds -> Built-In Node -> Configure,在Node Properties模块添加环境变量:

NODE_OPTIONS=--max-old-space-size=2048

(给Node.js进程分配2GB内存,覆盖默认内存限制)

2. 检查Docker容器资源限制

执行以下命令查看Jenkins容器的内存上限:

docker inspect <jenkins容器ID> | grep -i memory

若发现内存限制值远低于4GB,重启容器时指定内存参数:

docker run -d --privileged --memory=8g --memory-swap=8g <jenkins镜像名>

(根据主机实际可用内存调整,建议分配4GB以上)

3. 设置Jenkins全局环境变量

进入Manage Jenkins -> Configure System -> Global properties,勾选Environment variables,添加:

NODE_OPTIONS=--max-old-space-size=2048

确保所有构建任务都能继承该内存配置。

4. 直接在构建命令中指定内存

若上述配置无效,修改构建步骤的命令为:

NODE_OPTIONS=--max-old-space-size=2048 npm run build

5. 排查构建日志细节

开启Jenkins构建的Console Output详细日志,检查npm run build执行过程中是否存在隐藏错误(如文件权限问题、依赖冲突),部分卡死现象实际由非内存问题引发。

内容的提问来源于stack exchange,提问作者Matthew Mangan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:23:03