The first applied run lost VDNT-Docker03 29 images (10.4 GB) before its
script ran. Its `docker system prune` removes dangling images, and Docker
counts an image with no tag as dangling: every image a swarm task pulled by
digest. Docker03 was left holding only its own tasks' images, as under the
old prune. Nothing went down, since a running container's image can't be
removed.
- Step 1 now prunes containers, networks, build cache and (prune_volumes)
volumes one by one. Every image decision is left to the script, which
keeps the images services are pinned to.
- A test guards against any image-pruning command in the playbook.
- The playbook moves to maintenance/swarm_prune/, with its script in that
folder's files/, so a helper's name can't collide with another
playbook's (the operator's direction for playbooks with helpers).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>