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

Angular 12应用使用GitLab Runner执行ng build失败但本地运行正常

问题原因

这个Go运行时报错的核心诱因是GitLab Runner shell执行器的CI运行环境和你手动登录gitlab-runner用户的交互式环境不一致,通常是资源限制、环境变量差异、systemd服务限制三者之一导致Angular构建依赖里的Go编译二进制组件(比如esbuild、sass编译器等)运行异常。

解决步骤
  • 第一步:对齐环境变量
    在CI脚本的ng build命令前新增env > ci_env.txt,手动登录gitlab-runner用户执行env > local_env.txt,对比两份文件的差异,将交互式环境特有的PATH、NODE_OPTIONS、Golang相关的环境变量在CI脚本中手动设置,示例如下:
    export PATH=$PATH:/home/gitlab-runner/.local/bin
    export NODE_OPTIONS="--max-old-space-size=4096"
    
  • 第二步:解除Runner的资源限制
    如果你的GitLab Runner是通过systemd部署的,修改/etc/systemd/system/gitlab-runner.service(或者对应systemd配置路径),在[Service]段新增以下配置:
    LimitMEMLOCK=infinity
    LimitNOFILE=65536
    MemoryMax=8G
    
    修改后执行systemctl daemon-reload && systemctl restart gitlab-runner生效。
  • 第三步:清理构建缓存
    在CI脚本中构建前新增清理命令,避免缓存的依赖版本和环境不兼容:
    rm -rf node_modules package-lock.json dist
    npm cache clean --force
    npm install
    
  • 第四步:升级兼容版本
    如果上述操作无效,可将GitLab Runner升级到和你GitLab服务端主版本一致的最新稳定小版本,部分旧版本Runner的Go运行时和Angular12依赖的前端构建工具存在兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:36:01