#!/usr/bin/env bash # Free disk before docker compose build (build cache is the usual culprit for Go OOM / no space). # Safe on deploy hosts: does NOT use --volumes (keeps named DB volumes). set -euo pipefail docker_cmd() { if docker info >/dev/null 2>&1; then docker "$@" elif sudo docker info >/dev/null 2>&1; then sudo docker "$@" else echo "docker not available — skip prune" >&2 return 1 fi } echo "==> disk before prune" df -h / 2>/dev/null || true if [[ -d /var/lib/docker ]]; then df -h /var/lib/docker 2>/dev/null || true fi if ! docker info >/dev/null 2>&1 && ! sudo docker info >/dev/null 2>&1; then echo "docker not available — skip prune" >&2 exit 0 fi echo "==> docker builder prune (build cache)" docker_cmd builder prune -af || true echo "==> docker system prune (unused images, stopped containers, networks)" docker_cmd system prune -af || true echo "==> disk after prune" df -h / 2>/dev/null || true if [[ -d /var/lib/docker ]]; then df -h /var/lib/docker 2>/dev/null || true fi