1
All checks were successful
Deploy API / deploy (push) Successful in 52s

This commit is contained in:
2026-05-26 17:58:16 +08:00
parent e18da8c6d3
commit 90184d40c7
5 changed files with 111 additions and 7 deletions

38
scripts/docker-prune.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/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