39 lines
1.0 KiB
Bash
Executable File
39 lines
1.0 KiB
Bash
Executable File
#!/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
|