diff --git a/run.sh b/run.sh index 9c14dfb..8b1d69a 100755 --- a/run.sh +++ b/run.sh @@ -319,6 +319,13 @@ cmd_docker() { banner "========== Docker Compose 启动 ==========" $DOCKER_COMPOSE up -d --build echo "" + # 清理历史 build cache,防止占满磁盘 + info "清理历史构建缓存..." + local before_prune=$(df -h / | awk 'NR==2{print $5}') + docker builder prune -f 2>/dev/null || true + local after_prune=$(df -h / | awk 'NR==2{print $5}') + info "磁盘使用: ${before_prune} → ${after_prune}" + echo "" info "等待服务就绪..." sleep 5 $DOCKER_COMPOSE ps @@ -349,6 +356,22 @@ cmd_docker() { ps|status) $DOCKER_COMPOSE ps ;; + clean|prune) + banner "========== Docker 缓存清理 ==========" + info "清理前磁盘使用:" + echo " $(df -h / | awk 'NR==2{print $3, "used /", $2, "total ("$5")"}')" + echo "" + info "清理 dangling 镜像..." + docker image prune -f 2>/dev/null || true + info "清理构建缓存..." + docker builder prune -f 2>/dev/null || true + info "清理未使用的网络..." + docker network prune -f 2>/dev/null || true + echo "" + info "清理后磁盘使用:" + echo " $(df -h / | awk 'NR==2{print $3, "used /", $2, "total ("$5")"}')" + success "清理完成" + ;; help|--help|-h) echo "Docker Compose 部署命令:" echo " ./run.sh docker up 构建并启动所有容器" @@ -357,6 +380,7 @@ cmd_docker() { echo " ./run.sh docker restart 重启容器" echo " ./run.sh docker logs 查看实时日志" echo " ./run.sh docker ps 查看容器状态" + echo " ./run.sh docker clean 清理构建缓存/无用镜像" ;; *) error "未知 docker 子命令: $action"