-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathstart.sh
executable file
·150 lines (129 loc) · 3.27 KB
/
start.sh
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#!/bin/bash
# 知识库系统启动脚本
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# 打印带颜色的消息
print_message() {
echo -e "${GREEN}[知识库系统]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[警告]${NC} $1"
}
print_error() {
echo -e "${RED}[错误]${NC} $1"
}
# 检查Docker是否安装
check_docker() {
if ! command -v docker &> /dev/null; then
print_error "Docker未安装,请先安装Docker: https://docs.docker.com/get-docker/"
exit 1
fi
if ! command -v docker-compose &> /dev/null; then
print_error "Docker Compose未安装,请先安装Docker Compose: https://docs.docker.com/compose/install/"
exit 1
fi
}
# 检查环境文件
check_env_file() {
if [ ! -f .env ]; then
print_warning ".env文件不存在,将从.env.example创建"
cp .env.example .env
print_message ".env文件已创建,请根据需要修改配置"
fi
}
# 创建必要的目录
create_directories() {
print_message "创建必要的目录..."
mkdir -p data/documents data/processed data/vectors data/embedding_cache
}
# 启动服务
start_services() {
print_message "启动服务..."
docker-compose -f docker/docker-compose.yml up -d
}
# 停止服务
stop_services() {
print_message "停止服务..."
docker-compose -f docker/docker-compose.yml down
}
# 重启服务
restart_services() {
print_message "重启服务..."
docker-compose -f docker/docker-compose.yml restart
}
# 显示服务状态
show_status() {
print_message "服务状态:"
docker-compose -f docker/docker-compose.yml ps
}
# 显示日志
show_logs() {
service=$1
if [ -z "$service" ]; then
print_message "显示所有服务的日志..."
docker-compose -f docker/docker-compose.yml logs --tail=100 -f
else
print_message "显示服务 $service 的日志..."
docker-compose -f docker/docker-compose.yml logs --tail=100 -f $service
fi
}
# 构建服务
build_services() {
print_message "构建服务..."
docker-compose -f docker/docker-compose.yml build
}
# 显示帮助信息
show_help() {
echo "知识库系统管理脚本"
echo ""
echo "用法: $0 [命令]"
echo ""
echo "命令:"
echo " start 启动所有服务"
echo " stop 停止所有服务"
echo " restart 重启所有服务"
echo " status 显示服务状态"
echo " logs 显示所有服务的日志"
echo " logs <服务> 显示指定服务的日志"
echo " build 构建服务"
echo " help 显示帮助信息"
echo ""
}
# 主函数
main() {
# 检查Docker
check_docker
# 检查环境文件
check_env_file
# 创建必要的目录
create_directories
# 处理命令
case "$1" in
start)
start_services
;;
stop)
stop_services
;;
restart)
restart_services
;;
status)
show_status
;;
logs)
show_logs "$2"
;;
build)
build_services
;;
help|*)
show_help
;;
esac
}
# 执行主函数
main "$@"