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

如何增大AWS部署的GitLab Runner流水线可用磁盘空间

问题原因

你遇到的磁盘容量不足是GitLab Runner AWS EC2驱动的默认配置导致的:

  • 默认配置下GitLab Runner创建EC2实例时,根卷容量固定为16G,你看到的/dev/nvme0n1p1就是这个默认根卷
  • c5d.large自带的50GB是本地临时NVMe盘,默认没有被格式化挂载,也没有被Docker和CI任务使用

解决方案

方案1:直接调整EC2实例根卷大小(最便捷)

直接修改GitLab Runner的配置,让新创建的实例默认根卷扩容到你需要的大小即可:

  1. 打开GitLab Runner的配置文件/etc/gitlab-runner/config.toml,找到对应[runners.machine.autoscaling]段落的配置
  2. 添加参数amazonec2-root-size = 50(单位为GB,可根据需求调整数值)
  3. 重启GitLab Runner服务生效:gitlab-runner restart
  4. 如果你是新注册Runner,直接在注册命令中添加参数--amazonec2-root-size 50即可

配置生效后新启动的CI任务,对应实例的根卷就会变成50GB,空间不足问题直接解决。


方案2:挂载c5d.large自带的50GB本地临时盘(性能更高、成本更低)

c5d.large自带的本地NVMe盘读写性能远高于EBS根卷,且无需额外付费,适合CI构建这种临时场景,配置方式如下:

  1. 在GitLab Runner的config.toml中添加用户数据配置,自动格式化挂载本地盘到Docker数据目录:
[runners.machine.autoscaling]
amazonec2-userdata = '''
#!/bin/bash
# 格式化本地NVMe盘
mkfs.ext4 -F /dev/nvme1n1
# 挂载到Docker默认数据目录
mkdir -p /var/lib/docker
mount /dev/nvme1n1 /var/lib/docker
# 写入fstab保证重启后自动挂载
echo "/dev/nvme1n1 /var/lib/docker ext4 defaults 0 0" >> /etc/fstab
# 重启Docker服务保证数据写入新挂载的磁盘
systemctl restart docker
'''
  1. 重启GitLab Runner服务生效即可,后续CI任务的所有Docker镜像、构建缓存、构建产物都会存储在50GB的本地盘上,完全满足React Native构建的空间需求。

临时应急方案

如果暂时不方便修改Runner配置,可以在.gitlab-ci.yml的任务脚本最开头添加清理命令,释放冗余空间:

your_job:
  before_script:
    - docker system prune -af
    - rm -rf ~/.cache/
  # 其余任务配置不变

该方案只能临时释放1-3GB空间,仅适合应急使用。


验证方式

调整配置后,在CI任务脚本中添加df -h命令执行,查看overlay和/builds对应的挂载点容量,确认已经扩容到16G以上即可。

内容的提问来源于stack exchange,提问作者Panji Setya Nur Prawira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:54:02