使用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! <https://github.com/npm/npm/issues> 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/sda2 48G 48G 0 100% / devtmpfs 63G 0 63G 0% /dev tmpfs 63G 0 63G 0% /dev/shm tmpfs 63G 2.8G 61G 5% /run tmpfs 63G 0 63G 0% /sys/fs/cgroup /dev/sda3 228G 19G 210G 9% /export /dev/sdb1 22T 13T 9.7T 56% /data tmpfs 13G 0 13G 0% /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