feat: Docker化部署完成 - 前端管理后台和AI服务

- 添加 hzhub-admin Dockerfile (Nginx)
- 添加 hzhub-admin nginx.conf (API代理、SSE支持、Gzip)
- 添加 hzhub-ai Dockerfile (Spring Boot)
- 添加 hzhub-gateway Dockerfile
- 更新 docker-compose.yml 添加前端和AI服务
- 更新 README.md 完善部署文档
- 配置 application-dev.yml 数据库连接

所有服务现在可通过 docker-compose up -d 一键启动:
- hzhub-admin:5666 (管理后台)
- hzhub-ai:6039 (AI服务)
- mysql:3306, redis:6379, weaviate:28080, n8n:5678
This commit is contained in:
2026-03-27 06:04:58 +00:00
parent 3584e491cc
commit bc96a584fe
9 changed files with 280 additions and 100 deletions

View File

@@ -14,6 +14,11 @@ services:
- mysql_data:/var/lib/mysql
networks:
- hzhub-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-hzhub123}"]
interval: 10s
timeout: 5s
retries: 5
# Redis
redis:
@@ -25,42 +30,50 @@ services:
- redis_data:/data
networks:
- hzhub-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
# Milvus (向量数据库)
milvus-standalone:
image: milvusdb/milvus:v2.4.5
container_name: hzhub-milvus
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
# Weaviate (向量数据库)
weaviate:
image: semitechnologies/weaviate:1.25.0
container_name: hzhub-weaviate
ports:
- "19530:19530"
- "9091:9091"
- "28080:8080"
environment:
QUERY_DEFAULTS_LIMIT: 25
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
DEFAULT_VECTORIZER_MODULE: 'none'
ENABLE_MODULES: ''
CLUSTER_HOSTNAME: 'node1'
volumes:
- weaviate_data:/var/lib/weaviate
networks:
- hzhub-network
# hzhub-ai (AI服务)
hzhub-ai:
build:
context: ../hzhub-ai
dockerfile: Dockerfile
container_name: hzhub-ai
ports:
- "6039:6039"
environment:
SPRING_PROFILES_ACTIVE: dev
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://hzhub-mysql:3306/ruoyi_ai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: root
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: hzhub123
SPRING_DATA_REDIS_HOST: hzhub-redis
SPRING_DATA_REDIS_PORT: 6379
depends_on:
- etcd
- minio
etcd:
image: quay.io/coreos/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
volumes:
- etcd_data:/etcd
networks:
- hzhub-network
minio:
image: minio/minio:latest
environment:
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin}
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-minioadmin}
volumes:
- minio_data:/minio_data
command: minio server /minio_data
mysql:
condition: service_healthy
redis:
condition: service_healthy
networks:
- hzhub-network
@@ -79,11 +92,25 @@ services:
networks:
- hzhub-network
# hzhub-admin (前端管理后台)
hzhub-admin:
build:
context: ../hzhub-admin
dockerfile: Dockerfile
container_name: hzhub-admin
ports:
- "5666:5666"
environment:
- NGINX_PORT=5666
depends_on:
- hzhub-ai
networks:
- hzhub-network
volumes:
mysql_data:
redis_data:
etcd_data:
minio_data:
weaviate_data:
n8n_data:
networks: