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