#!/bin/bash # iMeeting Docker 停止脚本 set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' print_info() { echo -e "${BLUE}[INFO]${NC} $1" } print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } # 确定使用的命令 if docker compose version &> /dev/null; then COMPOSE_CMD="docker compose" else COMPOSE_CMD="docker-compose" fi # 显示当前状态 print_info "当前服务状态:" $COMPOSE_CMD ps echo "" # 询问是否删除数据 echo -e "${YELLOW}是否保留数据?${NC}" echo "1) 仅停止服务(保留所有数据)" echo "2) 停止服务并删除容器(保留数据卷)" echo "3) 停止服务并删除所有数据(包括数据库)" read -p "请选择 (1/2/3): " choice case $choice in 1) print_info "停止服务..." $COMPOSE_CMD stop print_success "服务已停止,数据已保留" ;; 2) print_info "停止并删除容器..." $COMPOSE_CMD down print_success "容器已删除,数据卷已保留" ;; 3) print_warning "警告: 这将删除所有数据,包括数据库!" read -p "确认删除所有数据? (yes/no): " confirm if [ "$confirm" = "yes" ]; then print_info "停止并删除所有数据..." $COMPOSE_CMD down -v print_success "所有服务和数据已删除" else print_info "操作已取消" fi ;; *) print_warning "无效选择,仅停止服务" $COMPOSE_CMD stop ;; esac