Git Product home page Git Product logo

docker-builder-prune's Introduction

Docker Builder Prune

The docker build cache may consume a large number of filesystem inodes especially if building images containing a large number of files.

The docker build cache can be managed with the docker builder ... CLI commands. If the cache is large, running the prune command can take several minutes.

Here is a shell script to periodically check inode usage in the /var/lib/docker or any other desired directory, and run docker builder prune ... if inode usage exceeds the specified threshold.

An example Kubernetes DaemonSet configuration file shows how this can be run in a docker container on all nodes in a Kubernetes cluster.

One case for use in Kubernetes is with CI/CD agents running inside pods and those agents are connecting to the host's docker daemon to build & push docker container images. Kubernetes itself will garbage collect images and containers that are under K8S control. Other containers and the build cache need to be managed separately. This can help cover the build cache.

Configuration

The environment variables shown below are available:

ENVIRONMENT VARIABLE DEFAULT VALUE PURPOSE
MOUNTPOINTS /var/lib/docker /data/var_lib_docker Space separated list of mountpoints to check. Non-existent locations will be silently skipped
THRESHOLD 50 Minimum percentage inode usage that will trigger pruning
FILTER unused-for=1h Value of --filter argument on docker builder prune command
SLEEP 600 Time to wait between checks. Value in seconds unless suffixed with h or d for hours & days respectively
REST_TIME 900 Additional time to wait after running a prune. Value in seconds unless suffixed with h or d for hours & days respectively
IDENTIFIER Short hostname (from hostname -s) Included in console logs
HOST_IP Empty Included in console logs

docker-builder-prune's People

Contributors

jamesjj avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.