#!/usr/bin/env bash
# 清理 Docker 无用镜像与构建缓存
# 用法：
#   bash scripts/docker-prune.sh           # 安全：悬空镜像 + 构建缓存
#   bash scripts/docker-prune.sh --all     # 额外删除未被任何容器使用的镜像

set -euo pipefail

APP_DIR="${APP_DIR:-/opt/zhimingge}"
cd "$APP_DIR" 2>/dev/null || cd "$(dirname "$0")/.."

echo "==> 当前磁盘占用"
docker system df
echo ""

echo "==> 当前知命阁相关镜像"
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.Size}}\t{{.CreatedSince}}" \
  | head -1
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.Size}}\t{{.CreatedSince}}" \
  | grep -E "zhimingge|^REPOSITORY" || true
echo ""

echo "==> 删除悬空镜像（<none>，多为 rebuild 后遗留）..."
docker image prune -f

echo "==> 清理构建缓存..."
docker builder prune -f

if [[ "${1:-}" == "--all" ]]; then
  echo ""
  echo "==> 删除未被任何容器使用的镜像（不含正在运行的 zhimingge:latest）..."
  docker image prune -a -f
fi

echo ""
echo "==> 清理后磁盘占用"
docker system df
echo ""
echo "完成。若仍占用较大，可查看：docker images -a"
