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

Gitlab CI构建Ionic应用时报unable to create new native thread错误

解决方案

1. 限制Gradle运行线程数

在你的mobile-build job中新增Gradle参数环境变量,直接限制其线程开销:

stage: mobile-build
  image: beevelop/ionic:latest
  # 新增以下变量配置
  variables:
    GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.parallel=false -Dorg.gradle.workers.max=2 -Xmx2048m"
  cache:
    paths:
      - platforms/
      - plugins/
  artifacts: 
    paths:
      - platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk
  script: 
    - npm install
    - if [ ! -d platforms/android ]; then ionic cordova platform add android@^9.0.0; fi
    - ionic cordova build android --release -- --gradleArg=-Dorg.gradle.jvmargs="-Xmx2048m"

workers.max可根据你的Runner配置调整,2C4G规格的Runner设置2~4即可,避免线程数超出容器上限

2. 调整Gitlab Runner Docker容器的ulimit限制

修改Gitlab Runner所在宿主机的/etc/gitlab-runner/config.toml配置文件,找到对应Runner的[runners.docker]配置段,添加ulimit参数:

[runners.docker]
  # 其他原有配置保留
  ulimit = ["nproc=65535:65535", "nofile=65535:65535"]

修改完成后执行gitlab-runner restart重启Runner生效,该配置会直接提升容器内的进程和文件句柄上限,解决系统级ulimit不生效的问题。

3. 可选优化

如果上述配置还出现报错,可以将Ionic镜像替换为固定版本而非latest,避免镜像最新版本存在依赖兼容性问题,例如使用beevelop/ionic:v6.20.1这类明确版本号的镜像。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:06:03