Files
hzhub/hzhub-deploy/docker-compose.yml
大壮 2f25a943b8 feat: 添加项目配置和依赖更新
配置更新:
1. 前端配置
   - 添加 hook-fetch 依赖用于 HTTP 请求
   - 更新 vite.config.mts 配置
   - 添加 .npmrc 配置文件

2. 后端配置
   - 更新 application.yml 和 application-dev.yml 配置
   - 更新 docker-compose.yml 配置

3. 代码优化
   - OSS 客户端优化
   - SSE 管理器优化
   - 聊天服务和向量存储策略优化

4. 项目文档
   - 添加 CLAUDE.md 项目指南

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 09:44:56 +00:00

170 lines
4.0 KiB
YAML

services:
# MySQL
mysql:
image: mysql:8.0
container_name: hzhub-mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-hzhub123}
MYSQL_DATABASE: hzhub
ports:
- "3306:3306"
volumes:
- 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:
image: redis:7-alpine
container_name: hzhub-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- hzhub-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
# Weaviate (向量数据库)
weaviate:
image: semitechnologies/weaviate:1.25.0
container_name: hzhub-weaviate
ports:
- "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
# MinIO (对象存储)
minio:
image: minio/minio:latest
container_name: hzhub-minio
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: hzhub
MINIO_ROOT_PASSWORD: hzhub123456
command: server /data --console-address ":9001"
volumes:
- minio_data:/data
networks:
- hzhub-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
# 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:
mysql:
condition: service_healthy
redis:
condition: service_healthy
networks:
- hzhub-network
# n8n (工作流)
n8n:
image: n8nio/n8n:latest
container_name: hzhub-n8n
environment:
N8N_BASIC_AUTH_ACTIVE: "true"
N8N_BASIC_AUTH_USER: ${N8N_USER:-admin}
N8N_BASIC_AUTH_PASSWORD: ${N8N_PASSWORD:-hzhub123}
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
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
# hzhub-portal-company (公司门户)
hzhub-portal-company:
build:
context: ../hzhub-portal-company
dockerfile: Dockerfile
container_name: hzhub-portal-company
ports:
- "5137:5137"
environment:
UPSTREAM_URL: http://hzhub-ai:6039
depends_on:
- hzhub-ai
networks:
- hzhub-network
# hzhub-portal-dealer (经销商门户)
hzhub-portal-dealer:
build:
context: ../hzhub-portal-dealer
dockerfile: Dockerfile
container_name: hzhub-portal-dealer
ports:
- "5138:5138"
environment:
UPSTREAM_URL: http://hzhub-ai:6039
depends_on:
- hzhub-ai
networks:
- hzhub-network
volumes:
mysql_data:
redis_data:
weaviate_data:
minio_data:
n8n_data:
networks:
hzhub-network:
driver: bridge