imetting/stop.sh

73 lines
1.6 KiB
Bash
Executable File

#!/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