專案若更新頻繁,
Runner所在VM(或主機)可能會三不五時遇到個問題,
磁碟空間不足,
此時可以用以下指令確診病情:
docker system df
若顯示有很大量可回收資源(由reclaimable欄位查看),
此時就可以考慮定時清理docker不用的資源,
一個簡單好用的方案是crontab搭配docker system prune。
選定執行時間建立crontab
依照想要的頻率建立crontab,
我希望每天清理,
因此直接建立在/etc/cron.daily/資料夾中。
cd /etc/cron.daily
vim clean-docker-system.sh
撰寫corntab腳本
使用docker system prune指令清理不使用的資源,
這邊因VM只供runner使用,做了徹底清理。
#!/bin/sh
docker system prune --volumes --all --force
說明有用到的幾個選項:
- –all , -a:清理所有unused鏡像,而不單單是dangling狀態的鏡像
- –volumes :清理不使用的資料卷
- –force , -f :不做確認詢問
若是環境有其他服務使用docker,
須謹慎使用–volumes選項,避免誤刪資料。
設定corntab腳本權限
新建的檔案權限是664,
若要將該檔案變成可執行檔,且不讓其他人修改檔案,
要將檔案權限調整為755
chmod 755 clean-docker-system.sh
到此就設定完成囉,
可以隔段時間再檢查是否有正常運作。