-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.sh
More file actions
98 lines (80 loc) · 2.44 KB
/
Copy pathdeploy.sh
File metadata and controls
98 lines (80 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash
# Microsoft-Email-Manager - 一键部署脚本
# 作者: AI Assistant
# 描述: 自动化Docker部署流程
set -e
echo "🚀 Microsoft-Email-Manager - 一键部署脚本"
echo "======================================="
# 检查Docker和docker-compose是否安装
check_dependencies() {
echo "📋 检查依赖..."
if ! command -v docker &> /dev/null; then
echo "❌ Docker未安装,请先安装Docker"
echo " 安装指南: https://docs.docker.com/get-docker/"
exit 1
fi
if ! command -v docker-compose &> /dev/null; then
echo "❌ docker-compose未安装,请先安装docker-compose"
echo " 安装指南: https://docs.docker.com/compose/install/"
exit 1
fi
echo "✅ 依赖检查通过"
}
# 创建必要的目录
create_directories() {
echo "📁 创建数据目录..."
mkdir -p data
# 创建空的accounts.json如果不存在
if [ ! -f "accounts.json" ]; then
echo "{}" > accounts.json
echo "✅ 创建空的账户配置文件"
fi
}
# 构建和启动服务
deploy_service() {
echo "🔨 构建Docker镜像..."
docker-compose build
echo "🚀 启动服务..."
docker-compose up -d
echo "⏳ 等待服务启动..."
sleep 10
# 检查服务状态
if docker-compose ps | grep -q "Up"; then
echo "✅ 服务启动成功!"
echo ""
echo "📋 服务信息:"
echo " - Web界面: http://localhost:8000"
echo " - API文档: http://localhost:8000/docs"
echo " - 服务状态: docker-compose ps"
echo " - 查看日志: docker-compose logs -f"
echo ""
echo "🎉 部署完成!"
else
echo "❌ 服务启动失败,请检查日志:"
echo " docker-compose logs"
exit 1
fi
}
# 显示管理命令
show_management_commands() {
echo ""
echo "🛠️ 常用管理命令:"
echo " 启动服务: docker-compose up -d"
echo " 停止服务: docker-compose down"
echo " 重启服务: docker-compose restart"
echo " 查看日志: docker-compose logs -f"
echo " 查看状态: docker-compose ps"
echo ""
}
# 主流程
main() {
check_dependencies
create_directories
deploy_service
show_management_commands
}
# 捕获中断信号
trap 'echo "❌ 部署中断"; exit 1' INT
# 执行主流程
main
echo "✨ 感谢使用 Microsoft-Email-Manager!"