92 lines
2.3 KiB
Bash
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 ""
|
|
|