diff --git a/docker/extras/README.md b/docker/extras/README.md new file mode 100644 index 00000000..be245082 --- /dev/null +++ b/docker/extras/README.md @@ -0,0 +1,31 @@ +# Docker build extras + +Optional utilities for builders. + +## docker-cleanup-dangling-images + +Daily cleanup of dangling (untagged) images. If you don't clean up old images you may eventually run out of disk space. + +First, copy the unit files into your build machine's `/etc/systemd/system/` folder. + +```bash +cp docker-cleanup-dangling-images.{service,timer} /etc/systemd/system/ +``` + +Alternatively `scp` can be much easier depending on your setup: + +```bash +scp docker-cleanup-dangling-images.{service,timer} root@a.b.c.d:/etc/systemd/system +``` + +Now all you need to do is enable and start the timer. + +```bash +systemctl enable --now docker-cleanup-dangling-images.timer +``` + +You can also trigger the cleanup job manually: + +```bash +systemctl start docker-cleanup-dangling-images +``` diff --git a/docker/extras/docker-cleanup-dangling-images.service b/docker/extras/docker-cleanup-dangling-images.service new file mode 100644 index 00000000..00384ac9 --- /dev/null +++ b/docker/extras/docker-cleanup-dangling-images.service @@ -0,0 +1,8 @@ +[Unit] +Description=Clean up dangling Docker images +After=docker.service +Requires=docker.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/env sh -c '/usr/bin/docker images -q --filter "dangling=true" | xargs -t --no-run-if-empty /usr/bin/docker rmi' diff --git a/docker/extras/docker-cleanup-dangling-images.timer b/docker/extras/docker-cleanup-dangling-images.timer new file mode 100644 index 00000000..f5201388 --- /dev/null +++ b/docker/extras/docker-cleanup-dangling-images.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Run docker-cleanup-dangling-images.service daily + +[Timer] +OnCalendar=*-*-* 10:00:00 +Persistent=true + +[Install] +WantedBy=timers.target