记一次gitlab-runner|记一次gitlab-runner 磁盘空间不足

【记一次gitlab-runner|记一次gitlab-runner 磁盘空间不足】使用gitlab-runner 经常会遇到一个问题
故障现场

  • 系统环境 centos 7, docker 下的 gitlab-runner
    npm WARN tar ENOSPC: no space left on device, write Unhandled rejection Error: ENOSPC: no space left on device, write npm ERR! cb() never called!npm ERR! This is an error with npm itself. Please report this error at: npm ERR!npm ERR! A complete log of this run can be found in: npm ERR!/root/.npm/_logs/2018-08-16T08_39_27_535Z-debug.log

排查过程
  • 登录到gitlab-runner 服务器, 查看磁盘利用率 df -h
    文件系统容量已用可用已用% 挂载点 /dev/sda248G48G0100% / devtmpfs63G063G0% /dev tmpfs63G063G0% /dev/shm tmpfs63G2.8G61G5% /run tmpfs63G063G0% /sys/fs/cgroup /dev/sda3228G19G210G9% /export /dev/sdb122T13T9.7T56% /data tmpfs13G013G0% /run/user/0

  • /dev/sda2 容量已经用完了, 检查一下本机docker存储位置
    $ sudo docker info | grep "Docker Root Dir WARNING: You're not using the default seccomp profile WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled Docker Root Dir: /var/lib/docker

  • 果然是存在 /dev/sda2 这个分区下
解决方案
将docker存储位置挂载到 /dev/sdb1
  • 停用docker service docker stop
  • 迁移文件
    mv /var/lib/docker /data/docker ln -s /data/docker /var/lib/docker

  • 重启docker service docker start
  • 重启container
    $ docker ps -a $ docker start gitlab-runner

    推荐阅读