Files
hzhub/hzhub-deploy/docker-compose.yml
大壮 278e507e8a feat: 添加员工门户项目及相关后端改造
- 新增 hzhub-portal-employee 员工门户前端项目(基于 Vue3 + Element Plus)
- 后端登录接口增加返回 nickName 字段
- 移除 KnowledgeInfoController 的 @SaCheckPermission 注解
- 删除 hzhub-portal-company 旧门户项目
- 更新项目文档和架构说明
- 添加后台运行管理脚本(start-all.sh / status-all.sh / stop-all.sh)
- 更新 docker-compose 配置

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 03:47:33 +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/hzhub?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-employee (员工门户)
hzhub-portal-employee:
build:
context: ../hzhub-portal-employee
dockerfile: Dockerfile
container_name: hzhub-portal-employee
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