Files
Arkie-Library-Backend/scripts/docker-prune.sh

39 lines
1.0 KiB
Bash
Raw Normal View History

2026-05-26 17:58:16 +08:00
#!/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