GitLab Runner 記憶體相關設定:shm_size、memory、memory_swap

如果你通过gitlab runner来编译vuejs,往往会遇到内存爆了,自动中止,这时候就需要调高gitlab runner的内存上限
有以下参数shm_size、memory、memory_swap

memory (物理内存上限)

这是容器能使用的最大 RAM 总量。

  • 配置项:在 config.toml 中通过 memory = "4g" 设置。
  • 如果不设置:Docker 容器默认无限制,如果你的构建任务把宿主机的 16GB 内存全吃光了,宿主机本身可能会死机。
  • 你的情况:之前的报错是 Job failed: exit code 1 且日志中出现 Killed,说明很可能是达到了物理内存瓶颈(可能是宿主机本身没内存了,或者之前设了限制)。

shm_size (共享内存大小)

这是一个特殊的内存盘。它虽然也是用 RAM 存储的,但它的大小被单独限制。

  • 配置项:在 config.toml 中通过 shm_size 设置(单位字节)。
  • 为什么默认 64MB 不够?
    • 浏览器测试:如果你在 CI 里跑 Puppeteer、Playwright 或者 Selenium(启动无头 Chrome 浏览器),Chrome 极其依赖 /dev/shm 来渲染页面。64MB 瞬间就会写满,导致浏览器崩溃(报错通常是 Page crashed 而不是 OOM)。
    • 高并发构建:某些构建工具(如高并发的 webpack/vite 打包)可能会利用共享内存来加速进程间数据传输。
  • 建议:现代前端项目通常建议至少给 1GB (1073741824) 或 2GB

参考