-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart-docker.sh
More file actions
171 lines (156 loc) · 5.43 KB
/
Copy pathstart-docker.sh
File metadata and controls
171 lines (156 loc) · 5.43 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
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#!/bin/bash
# ============================================================
# KnowEngine 中间件启动脚本
# 使用方法: bash start-docker.sh
# ============================================================
echo "=========================================="
echo " KnowEngine Docker 中间件启动脚本"
echo "=========================================="
# 创建数据目录
mkdir -p /opt/know-engine/data/{mysql,redis,elasticsearch,neo4j,minio,xxl-job}
# ============================================================
# 第1步: 启动 MySQL
# ============================================================
echo ""
echo "[1/6] 启动 MySQL..."
docker run -d \
--name know-engine-mysql \
--restart unless-stopped \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root123456 \
-e MYSQL_DATABASE=know_engine \
-e MYSQL_USER=know_engine \
-e MYSQL_PASSWORD=know_engine \
-e TZ=Asia/Shanghai \
-v /opt/know-engine/data/mysql:/var/lib/mysql \
-v $(pwd)/src/main/resources/sql:/docker-entrypoint-initdb.d \
mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
echo "等待 MySQL 启动..."
sleep 10
echo "MySQL 启动完成! 端口: 3306"
# ============================================================
# 第2步: 启动 Redis
# ============================================================
echo ""
echo "[2/6] 启动 Redis..."
docker run -d \
--name know-engine-redis \
--restart unless-stopped \
-p 6379:6379 \
-e TZ=Asia/Shanghai \
-v /opt/know-engine/data/redis:/data \
redis:7-alpine \
redis-server --requirepass knowengine
echo "等待 Redis 启动..."
sleep 3
echo "Redis 启动完成! 端口: 6379"
# ============================================================
# 第3步: 启动 Elasticsearch
# ============================================================
echo ""
echo "[3/6] 启动 Elasticsearch..."
docker run -d \
--name know-engine-elasticsearch \
--restart unless-stopped \
-p 9200:9200 \
-p 9300:9300 \
-e discovery.type=single-node \
-e xpack.security.enabled=false \
-e xpack.security.http.ssl.enabled=false \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e TZ=Asia/Shanghai \
-v /opt/know-engine/data/
elasticsearch:/usr/share/elasticsearch/data \
elasticsearch:8.11.0
echo "等待 Elasticsearch 启动..."
sleep 15
echo "Elasticsearch 启动完成! 端口: 9200"
# ============================================================
# 第4步: 启动 Neo4j
# ============================================================
echo ""
echo "[4/6] 启动 Neo4j..."
docker run -d \
--name know-engine-neo4j \
--restart unless-stopped \
-p 7474:7474 \
-p 7687:7687 \
-e NEO4J_AUTH=neo4j/neo4j666 \
-e NEO4J_PLUGINS='["apoc"]' \
-e NEO4J_dbms_security_procedures_unrestricted="apoc.*" \
-e NEO4J_server_memory_heap_initial__size=512m \
-e NEO4J_server_memory_heap_max__size=512m \
-e TZ=Asia/Shanghai \
-v /opt/know-engine/data/neo4j/data:/data \
-v /opt/know-engine/data/neo4j/logs:/logs \
neo4j:5-community
echo "等待 Neo4j 启动..."
sleep 15
echo "Neo4j 启动完成! 端口: 7687 (Web UI: 7474)"
# ============================================================
# 第5步: 启动 MinIO
# ============================================================
echo ""
echo "[5/6] 启动 MinIO..."
docker run -d \
--name know-engine-minio \
--restart unless-stopped \
-p 9000:9000 \
-p 9001:9001 \
-e MINIO_ROOT_USER=minioadmin \
-e MINIO_ROOT_PASSWORD=minioadmin \
-e TZ=Asia/Shanghai \
-v /opt/know-engine/data/minio:/data \
minio/minio \
server /data --console-address ":9001"
echo "等待 MinIO 启动..."
sleep 5
echo "MinIO 启动完成! API端口: 9000, Web UI: 9001"
# ============================================================
# 第6步: 启动 XXL-Job Admin
# ============================================================
echo ""
echo "[6/6] 启动 XXL-Job Admin..."
docker run -d \
--name know-engine-xxl-job-admin \
--restart unless-stopped \
-p 8080:8080 \
-e SPRING_DATASOURCE_URL="jdbc:mysql://你的服务器IP:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai" \
-e SPRING_DATASOURCE_USERNAME=know_engine \
-e SPRING_DATASOURCE_PASSWORD=know_engine \
-e TZ=Asia/Shanghai \
-v /opt/know-engine/data/xxl-job:/data/applogs \
xuxueli/xxl-job-admin:2.4.0
echo "等待 XXL-Job Admin 启动..."
sleep 10
echo "XXL-Job Admin 启动完成! 端口: 8080"
# ============================================================
# 完成
# ============================================================
echo ""
echo "=========================================="
echo " 所有服务启动完成!"
echo "=========================================="
echo ""
echo "服务访问地址:"
echo " - MySQL: 你的服务器IP:3306"
echo " - Redis: 你的服务器IP:6379"
echo " - Elasticsearch: http://你的服务器IP:9200"
echo " - Neo4j: bolt://你的服务器IP:7687"
echo " - Neo4j Web UI: http://你的服务器IP:7474"
echo " - MinIO API: http://你的服务器IP:9000"
echo " - MinIO Web UI: http://你的服务器IP:9001"
echo " - XXL-Job: http://你的服务器IP:8080/xxl-job-admin"
echo ""
echo "默认账号密码:"
echo " - MySQL: know_engine / know_engine"
echo " - Redis: knowengine"
echo " - Neo4j: neo4j / neo4j666"
echo " - MinIO: minioadmin / minioadmin"
echo " - XXL-Job: admin / 123456"
echo ""
echo "查看所有容器状态: docker ps"
echo "查看某个服务日志: docker logs know-engine-mysql"
echo ""