# Runs docker-prune.service every 2 min. It was 30, then 10, and BOTH still lost the race: measured # over six hours on 2026-07-29 the burst guard fired zero times while deb died of ENOSPC between # polls, because three concurrent Rust builds fill the disk and drain it again inside the interval. # (The arch symptom is `as: BFD assertion fail` — assembler noise for "can't write, No space left on # device" — and by the time anyone looks, df is back under 40% used.) # # Every 2 min is affordable: the script is a handful of docker calls and no-ops in about a second # when there is nothing to reclaim. # # Ten minutes is a backstop, not the fix. The fix was capacity: the LXC rootfs went 123 G -> 175 G # on 2026-07-29 (`pct resize 116 rootfs +50G` on home-node-1), which is what actually gives three # concurrent builds room. RandomizedDelaySec stays low so the guard is prompt. # Persistent=true catches up after downtime. Install: see the header of docker-prune.service. [Unit] Description=Run docker-prune every 2 min (CI runner disk hygiene + cache cap + burst guard) [Timer] OnCalendar=*:0/2 RandomizedDelaySec=10 Persistent=true [Install] WantedBy=timers.target