optimize: docker up 自动清理历史 build cache,新增 docker clean 子命令

This commit is contained in:
attacker committed 2026-06-19 06:36:00 +00:00
1 parent b25ad8705f
commit d3c3fb546d
1 file changed
+24
+24
View File
@@ -319,6 +319,13 @@ cmd_docker() {
banner "========== Docker Compose 启动 ==========" banner "========== Docker Compose 启动 =========="
$DOCKER_COMPOSE up -d --build $DOCKER_COMPOSE up -d --build
echo "" 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 "等待服务就绪..." info "等待服务就绪..."
sleep 5 sleep 5
$DOCKER_COMPOSE ps $DOCKER_COMPOSE ps
@@ -349,6 +356,22 @@ cmd_docker() {
ps|status) ps|status)
$DOCKER_COMPOSE ps $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) help|--help|-h)
echo "Docker Compose 部署命令:" echo "Docker Compose 部署命令:"
echo " ./run.sh docker up 构建并启动所有容器" echo " ./run.sh docker up 构建并启动所有容器"
@@ -357,6 +380,7 @@ cmd_docker() {
echo " ./run.sh docker restart 重启容器" echo " ./run.sh docker restart 重启容器"
echo " ./run.sh docker logs 查看实时日志" echo " ./run.sh docker logs 查看实时日志"
echo " ./run.sh docker ps 查看容器状态" echo " ./run.sh docker ps 查看容器状态"
echo " ./run.sh docker clean 清理构建缓存/无用镜像"
;; ;;
*) *)
error "未知 docker 子命令: $action" error "未知 docker 子命令: $action"