flnxi-Wu/scripts/tools/uninstall.sh
WuYongJie f646b71813
Some checks failed
CI Check / check (push) Has been cancelled
chore: 初始化本地仓库并同步最近改动
2025-11-18 17:50:16 +08:00

92 lines
2.3 KiB
Bash

#!/bin/bash
# ============================================
# 由壹点3D素材 - 卸载脚本
# ============================================
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
echo "========================================"
echo " 由壹点3D素材 - 卸载向导"
echo "========================================"
echo ""
echo -e "${RED}警告: 此操作将删除所有数据,包括:${NC}"
echo " - 所有上传的文件"
echo " - 数据库中的所有数据"
echo " - MinIO 中的所有对象"
echo ""
read -p "是否继续卸载? 输入 'YES' 确认: " CONFIRM
if [ "$CONFIRM" != "YES" ]; then
echo "已取消卸载"
exit 0
fi
# 检测 docker-compose 命令
if docker compose version &> /dev/null 2>&1; then
DOCKER_COMPOSE="docker compose"
elif command -v docker-compose &> /dev/null; then
DOCKER_COMPOSE="docker-compose"
else
echo -e "${RED}错误: 未找到 docker-compose 命令${NC}"
exit 1
fi
echo ""
echo -e "${BLUE}[1/4]${NC} 停止并删除容器..."
$DOCKER_COMPOSE down
echo -e "${GREEN}✓ 容器已删除${NC}"
echo ""
echo -e "${BLUE}[2/4]${NC} 是否删除数据卷(包含所有数据)?"
read -p "删除数据卷? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
$DOCKER_COMPOSE down -v
echo -e "${GREEN}✓ 数据卷已删除${NC}"
else
echo -e "${YELLOW}⚠ 数据卷已保留${NC}"
fi
echo ""
echo -e "${BLUE}[3/4]${NC} 是否删除本地文件?"
read -p "删除 uploads 目录? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
rm -rf uploads
echo -e "${GREEN}✓ 本地文件已删除${NC}"
else
echo -e "${YELLOW}⚠ 本地文件已保留${NC}"
fi
echo ""
echo -e "${BLUE}[4/4]${NC} 是否删除 Docker 镜像?"
read -p "删除应用镜像? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
docker images | grep youyidian-3d-material | awk '{print $3}' | xargs -r docker rmi -f
echo -e "${GREEN}✓ 镜像已删除${NC}"
else
echo -e "${YELLOW}⚠ 镜像已保留${NC}"
fi
echo ""
echo "========================================"
echo -e "${GREEN} 卸载完成${NC}"
echo "========================================"
echo ""
echo "保留的文件:"
ls -la | grep -E "docker-compose.yml|.env|install.sh"
echo ""
echo "如需完全删除,请手动删除这些文件"
echo ""