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

Bitbucket Pipeline构建Angular应用时Build容器内存超限问题求助

问题根因

你遇到的内存溢出核心原因是内存配额不匹配:

  • Bitbucket Pipeline size: 2x 的单步总内存配额为8GB,你给Docker服务分配了4GB内存,剩余可给Node.js进程使用的内存仅为4GB
  • 你的构建命令中设置Node堆内存上限为6144MB(即6GB),超出了可用内存上限,触发系统OOM Killer杀死进程,返回报错码137
  • 额外异常点:错误日志中显示你的构建脚本末尾存在&& npm run 的空命令,需确认是否为package.json配置错误,额外触发冗余进程占用内存
解决方案

方案1:移除不必要的Docker服务(优先推荐)

你的Angular构建步骤不需要用到Docker服务,直接删除构建step下的services: - docker配置即可,8GB内存将全部分配给Node.js进程:

  1. 删除Build angular app步骤下的如下配置:
services:
- docker
  1. 将package.json中build命令的max_old_space_size调整为7168(预留1GB系统内存,剩余7GB给Node):
"build": "node --max_old_space_size=7168 node_modules/@angular/cli/bin/ng build --configuration=calio"

方案2:调整内存配额(若确实需要Docker服务)

如果构建步骤必须使用Docker,可重新分配内存占比:

  1. 修改definitions下Docker的内存配额为2GB:
definitions:
  services:
    docker:
      memory: 2048
  1. 将build命令的max_old_space_size调整为5120(总8GB-2GB Docker=6GB,预留1GB系统内存后剩余5GB给Node)

额外优化建议

  • 若不需要生产环境sourcemap,可在angular.json中关闭sourcemap生成,大幅降低构建内存占用
  • 升级Angular CLI到14+版本,高版本CLI的构建内存占用优化明显
  • 检查package.json的scripts配置,删除错误的空npm run后缀,避免冗余进程启动

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:27:00