73 lines
1.6 KiB
Bash
Executable File
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
|