-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
159 lines (152 loc) · 4.66 KB
/
Copy pathdocker-compose.yml
File metadata and controls
159 lines (152 loc) · 4.66 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
version: '3.8'
services:
# ============================================================
# MySQL 8.0 - 业务数据、Text2SQL、会话/消息
# ============================================================
mysql:
image: mysql:8.0
container_name: know-engine-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root123456
MYSQL_DATABASE: know_engine
MYSQL_USER: know_engine
MYSQL_PASSWORD: know_engine
TZ: Asia/Shanghai
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
- ./src/main/resources/sql:/docker-entrypoint-initdb.d # 自动初始化表结构
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
# ============================================================
# Redis 7.0 - 缓存、分布式锁
# ============================================================
redis:
image: redis:7-alpine
container_name: know-engine-redis
restart: unless-stopped
environment:
TZ: Asia/Shanghai
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --requirepass knowengine
healthcheck:
test: ["CMD", "redis-cli", "-a", "knowengine", "ping"]
interval: 10s
timeout: 5s
retries: 5
# ============================================================
# Elasticsearch 8.x - KNN 向量检索、全文检索
# ============================================================
elasticsearch:
image: elasticsearch:8.11.0
container_name: know-engine-elasticsearch
restart: unless-stopped
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- xpack.security.http.ssl.enabled=false
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- TZ=Asia/Shanghai
ports:
- "9200:9200"
- "9300:9300"
volumes:
- es_data:/usr/share/elasticsearch/data
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health || exit 1"]
interval: 30s
timeout: 10s
retries: 5
# ============================================================
# Neo4j 5.x - 图数据库、Text2Cypher
# ============================================================
neo4j:
image: neo4j:5-community
container_name: know-engine-neo4j
restart: unless-stopped
environment:
NEO4J_AUTH: neo4j/neo4j666
NEO4J_PLUGINS: '["apoc"]'
NEO4J_dbms_security_procedures_unrestricted: "apoc.*"
NEO4J_server_memory_heap_initial__size: 512m
NEO4J_server_memory_heap_max__size: 512m
TZ: Asia/Shanghai
ports:
- "7474:7474" # Web UI
- "7687:7687" # Bolt 协议
volumes:
- neo4j_data:/data
- neo4j_logs:/logs
healthcheck:
test: ["CMD-SHELL", "cypher-shell -u neo4j -p neo4j666 'RETURN 1'"]
interval: 30s
timeout: 10s
retries: 5
# ============================================================
# MinIO - 对象存储
# ============================================================
minio:
image: minio/minio
container_name: know-engine-minio
restart: unless-stopped
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
TZ: Asia/Shanghai
ports:
- "9000:9000" # API 端口
- "9001:9001" # Web UI 端口
volumes:
- minio_data:/data
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 30s
timeout: 10s
retries: 5
# ============================================================
# XXL-Job Admin 2.4+ - 任务调度中心
# ============================================================
xxl-job-admin:
image: xuxueli/xxl-job-admin:2.4.0
container_name: know-engine-xxl-job-admin
restart: unless-stopped
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: know_engine
SPRING_DATASOURCE_PASSWORD: know_engine
TZ: Asia/Shanghai
ports:
- "8080:8080"
volumes:
- xxl_job_logs:/data/applogs
depends_on:
mysql:
condition: service_healthy
# ============================================================
# 数据卷
# ============================================================
volumes:
mysql_data:
driver: local
redis_data:
driver: local
es_data:
driver: local
neo4j_data:
driver: local
neo4j_logs:
driver: local
minio_data:
driver: local
xxl_job_logs:
driver: local