1
+ #! /bin/bash
2
+
3
+ # step 1: 准备docker环境
4
+ if [ -x " $( command -v docker) " ]; then
5
+ echo " Docker 已安装"
6
+ else
7
+ echo " Docker 未安装, 开始安装..."
8
+ sudo apt-get update
9
+ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
10
+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
11
+ sudo add-apt-repository " deb [arch=amd64] https://download.docker.com/linux/ubuntu $( lsb_release -cs) stable"
12
+ sudo apt-get update
13
+ sudo apt-get install -y docker-ce
14
+ fi
15
+
16
+ # step 2: 收集环境变量
17
+ while true ; do
18
+ echo -n " 是否启用mysql? [y/n] (默认: 使用sqlite): "
19
+ read mysql_enable
20
+ if [ " $mysql_enable " ]; then
21
+ if [ " $mysql_enable " = " y" ] || [ " $mysql_enable " = " Y" ]; then
22
+ mysql_enable=true
23
+ echo -n " 请输入mysql主机地址 (默认: 127.0.0.1): "
24
+ read mysql_host
25
+ echo -n " 请输入mysql端口 (默认: 3306): "
26
+ read mysql_port
27
+ echo -n " 请输入mysql用户名: "
28
+ read mysql_user
29
+ echo -n " 请输入mysql密码: "
30
+ read mysql_password
31
+ break
32
+ elif [ " $mysql_enable " = " n" ] || [ " $mysql_enable " = " N" ]; then
33
+ mysql_enable=false
34
+ break
35
+ else
36
+ echo " 请输入y或n"
37
+ continue
38
+ fi
39
+ else
40
+ echo " 请输入y或n"
41
+ continue
42
+ fi
43
+ done
44
+
45
+ while true ; do
46
+ echo -n " 是否修改前缀? [y/n] (默认: 兔兔): "
47
+ read prefix_enable
48
+ if [ " $prefix_enable " ]; then
49
+ if [ " $prefix_enable " = " y" ] || [ " $prefix_enable " = " Y" ]; then
50
+ echo -n " 请输入前缀, 用','分隔: "
51
+ read prefix
52
+ # 将前缀转换为python列表
53
+ prefix=" [\" $( echo $prefix | sed ' s/,/\",\"/g' ) \" ]"
54
+ break
55
+ elif [ " $prefix_enable " = " n" ] || [ " $prefix_enable " = " N" ]; then
56
+ break
57
+ else
58
+ echo " 请输入y或n"
59
+ continue
60
+ fi
61
+ else
62
+ echo " 请输入y或n"
63
+ continue
64
+ fi
65
+ done
66
+
67
+ while true ; do
68
+ echo -n " 是否修改AuthKey? [y/n] (默认: 无): "
69
+ read auth_enable
70
+ if [ " $auth_enable " ]; then
71
+ if [ " $auth_enable " = " y" ] || [ " $auth_enable " = " Y" ]; then
72
+ echo -n " 请输入AuthKey: "
73
+ read auth
74
+ break
75
+ elif [ " $auth_enable " = " n" ] || [ " $auth_enable " = " N" ]; then
76
+ break
77
+ else
78
+ echo " 请输入y或n"
79
+ continue
80
+ fi
81
+ else
82
+ echo " 请输入y或n"
83
+ continue
84
+ fi
85
+ done
86
+
87
+ while true ; do
88
+ echo -n " 是否修改端口? [y/n] (默认: 8088): "
89
+ read port_enable
90
+ if [ " $port_enable " ]; then
91
+ if [ " $port_enable " = " y" ] || [ " $port_enable " = " Y" ]; then
92
+ echo -n " 请输入端口: "
93
+ read port
94
+ break
95
+ elif [ " $port_enable " = " n" ] || [ " $port_enable " = " N" ]; then
96
+ port=8088
97
+ break
98
+ else
99
+ echo " 请输入y或n"
100
+ continue
101
+ fi
102
+ else
103
+ echo " 请输入y或n"
104
+ continue
105
+ fi
106
+ done
107
+
108
+ # # step 3: 运行docker
109
+
110
+ while true ; do
111
+ echo -n " 是否将amiyabot挂载到本地? [y/n] (默认挂载到amiyabot存储卷): "
112
+ read mount_enable
113
+ if [ " $mount_enable " ]; then
114
+ if [ " $mount_enable " = " y" ] || [ " $mount_enable " = " Y" ]; then
115
+ echo -n " 请输入挂载路径 (默认: $HOME /amiyabot): "
116
+ read mount_path
117
+ if [ ! " $mount_path " ]; then
118
+ mount_path=" $HOME /amiyabot"
119
+ fi
120
+ break
121
+ elif [ " $mount_enable " = " n" ] || [ " $mount_enable " = " N" ]; then
122
+ break
123
+ else
124
+ echo " 请输入y或n"
125
+ continue
126
+ fi
127
+ else
128
+ echo " 请输入y或n"
129
+ continue
130
+ fi
131
+ done
132
+
133
+ echo -n " 请输入容器名称 (默认: amiyabot): "
134
+ read container_name
135
+ if [ ! " $container_name " ]; then
136
+ container_name=" amiyabot"
137
+ fi
138
+
139
+ command=" sudo docker run -d --name $container_name "
140
+ if [ " $mysql_enable " = true ]; then
141
+ command=" $command -e ENABLE_MYSQL=true -e MYSQL_HOST=$mysql_host -e MYSQL_PORT=$mysql_port -e MYSQL_USER=$mysql_user -e MYSQL_PASSWORD=$mysql_password "
142
+ fi
143
+ if [ " $prefix " ]; then
144
+ command=" $command -e PREFIX=\" $prefix \" "
145
+ fi
146
+ if [ " $auth " ]; then
147
+ command=" $command -e AUTH=$auth "
148
+ fi
149
+ if [ " $port " ]; then
150
+ command=" $command -p $port :8088"
151
+ fi
152
+ if [ " $mount_path " ]; then
153
+ command=" $command -v $mount_path :/amiyabot"
154
+ else
155
+ command=" $command -v amiyabot:/amiyabot"
156
+ fi
157
+ command=" $command amiyabot/amiyabot:latest"
158
+
159
+ while true ; do
160
+ echo " 即将运行命令: $command , 是否继续? [y/n] (默认: n)"
161
+ read confirm
162
+ if [ " $confirm " ]; then
163
+ if [ " $confirm " = " y" ]; then
164
+ eval $command
165
+ break
166
+ elif [ " $confirm " = " n" ]; then
167
+ echo " 已取消"
168
+ break
169
+ else
170
+ echo " 请输入y或n"
171
+ continue
172
+ fi
173
+ else
174
+ echo " 请输入y或n"
175
+ continue
176
+ fi
177
+ done
0 commit comments