github.com/stevenmatthewt/agent@v3.5.4+incompatible/packaging/linux/root/usr/share/buildkite-agent/docker-cleanup.sh (about) 1 #!/bin/bash 2 3 # Daily cron script for cleaning up old Docker images and containers to keep 4 # disk space under control. 5 # 6 # To set this up, add a daily crontab entry like so: 7 # 8 # $ crontab -e 9 # 10 # # m h dom mon dow command 11 # 0 0 * * * /etc/buildkite-agent/docker-cleanup.sh 12 13 # Delete all exited containers first 14 exited_containers=$(docker ps -aq --no-trunc --filter "status=exited") 15 if [[ -n "$exited_containers" ]]; then 16 docker rm $exited_containers 17 fi 18 19 # Delete all buildkite-created images older than 1 day 20 old_buildkite_images=$(docker images -a | grep "buildkite.*\(days\|weeks\|months\)" | awk '{ print $1 }') 21 if [[ -n "$old_buildkite_images" ]]; then 22 docker rmi $old_buildkite_images 23 fi 24 25 # Delete all dangling images 26 dangling_images=$(docker images --filter 'dangling=true' -q --no-trunc | sort | uniq) 27 if [[ -n "$dangling_images" ]]; then 28 docker rmi $dangling_images 29 fi