如果你通过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 打包)可能会利用共享内存来加速进程间数据传输。
- 浏览器测试:如果你在 CI 里跑 Puppeteer、Playwright 或者 Selenium(启动无头 Chrome 浏览器),Chrome 极其依赖
- 建议:现代前端项目通常建议至少给 1GB (
1073741824) 或 2GB。