部署方案
2025/12/3大约 6 分钟
邮院通项目部署方案
项目获取
项目地址
# HTTPS克隆地址
git clone https://github.com/[your-username]/gupt.git开发环境准备
IDE导入
使用IntelliJ IDEA导入项目:
- 通过File > New > Project from Version Control导入
- URL填写上述HTTPS或SSH地址
- 等待IntelliJ IDEA通过Maven构建完毕项目
Maven加速配置
为加快Maven构建速度,建议配置阿里云镜像仓库:
在Maven配置文件apache-maven-3.6.3\conf\settings.xml中添加:
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>编译验证
项目构建完成后,执行以下命令验证编译是否成功:
mvn clean compile中间件环境搭建
邮院通项目推荐使用Docker Compose快速搭建所需中间件环境。以下是docker-compose配置和部署步骤:
Docker Compose配置
创建一个docker-compose.yml文件,内容如下:
version: '3.8'
services:
zookeeper:
image: zookeeper:3.4.14
container_name: zookeeper
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zookeeper:2888:3888
volumes:
- /park_voyant/data:/data
- /park_voyant/datalog:/datalog
networks:
- gupt
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.2
container_name: elasticsearch
restart: always
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- xpack.security.enabled=false # 强制禁用安全
ports:
- "9200:9200"
volumes:
- /UniversityManagementSystem/elasticsearch/esdata:/usr/share/elasticsearch/data
- /UniversityManagementSystem/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 挂载配置文件
- /UniversityManagementSystem/elasticsearch/logs:/usr/share/elasticsearch/logs # 日志目录
- /UniversityManagementSystem/elasticsearch/certs:/usr/share/elasticsearch/config/certs
networks:
- gupt
healthcheck:
test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
interval: 30s
timeout: 10s
retries: 3
kibana:
restart: always
image: docker.elastic.co/kibana/kibana:8.12.2
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- I18N_LOCALE=zh-CN # 设置Kibana的默认语言为简体中文
ports:
- "5601:5601"
volumes:
- /UniversityManagementSystem/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
networks:
- gupt
depends_on:
elasticsearch:
condition: service_healthy
logstash:
image: docker.elastic.co/logstash/logstash:8.12.2
restart: always
container_name: logstash
volumes:
# 挂载配置文件
- /UniversityManagementSystem/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
# 挂载 JDBC 驱动库
- /UniversityManagementSystem/logstash/mysql-connector-j-9.2.0/mysql-connector-j-9.2.0.jar:/usr/share/logstash/mysql-connector-java.jar
# 挂载用于存储元数据的目录
- /UniversityManagementSystem/logstash/logs/:/usr/share/logstash/logs/
ports:
- "5044:5044" # 如果需要监听 Beats 输入插件等,可以暴露端口
depends_on:
- elasticsearch
environment:
- LS_JAVA_OPTS=-Xmx512m -Xms512m # 根据实际情况调整内存设置
networks:
- gupt
redis:
image: redis:latest
container_name: universitymanagementsystem-redis
ports:
- "6379:6379"
volumes:
- /UniversityManagementSystem/redis/data:/data # 挂载Redis数据目录
- /UniversityManagementSystem/redis/redis.conf:/usr/local/etc/redis/redis.conf # 挂载Redis配置文件
restart: always
networks:
- gupt
torna:
image: registry.cn-hangzhou.aliyuncs.com/tanghc/torna:1.26.0
container_name: torna
environment:
JAVA_OPTS: "-Xms512m -Xmx512m"
restart: always
volumes:
- /UniversityManagementSystem/torna-1.26.0/application.properties:/torna/config/application.properties
ports:
- "7700:7700" # 根据实际需求配置端口
networks:
- gupt
mysql:
image: mysql:latest
container_name: universitymanagementsystem-mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} # 环境变量方式,保护密码安全
MYSQL_DATABASE: university_db
MYSQL_USER: ${MYSQL_USER} # 环境变量方式,保护用户名安全
MYSQL_PASSWORD: ${MYSQL_PASSWORD} # 环境变量方式,保护密码安全
ports:
- "3306:3306"
volumes:
- /UniversityManagementSystem/mysql/conf:/etc/mysql/conf.d:rw
- /UniversityManagementSystem/mysql/data:/var/lib/mysql:rw
restart: always
networks:
- gupt
nacos:
image: nacos/nacos-server:1.2.0
environment:
- MODE=standalone
ports:
- "8848:8848"
command: ["sh", "-c", "/home/nacos/bin/startup.sh -m standalone"]
container_name: nacos
networks:
- gupt
minio:
image: minio/minio
container_name: minio
ports:
- "9000:9000"
environment:
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY} # 环境变量方式,保护密钥安全
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY} # 环境变量方式,保护密钥安全
volumes:
- /home/data:/data
- /home/config:/root/.minio
command: server /data
networks:
- gupt
networks:
gupt:
driver: bridge环境变量文件配置
为了保护敏感信息,创建一个.env文件来存储密码和密钥:
# 数据库密码配置
MYSQL_ROOT_PASSWORD=your_root_password_here
MYSQL_USER=your_db_user_here
MYSQL_PASSWORD=your_db_password_here
# MinIO密钥配置
MINIO_ACCESS_KEY=your_minio_access_key_here
MINIO_SECRET_KEY=your_minio_secret_key_here注意: 将.env文件添加到.gitignore中,不要提交到版本控制系统。
创建所需目录
在使用Docker Compose之前,请确保创建以下目录结构:
Linux/Mac环境创建目录命令:
# 创建Zookeeper目录
mkdir -p /park_voyant/data /park_voyant/datalog
# 创建Elasticsearch目录
mkdir -p /UniversityManagementSystem/elasticsearch/esdata /UniversityManagementSystem/elasticsearch/config /UniversityManagementSystem/elasticsearch/logs /UniversityManagementSystem/elasticsearch/certs
# 创建Kibana目录
mkdir -p /UniversityManagementSystem/kibana/config
# 创建Logstash目录
mkdir -p /UniversityManagementSystem/logstash /UniversityManagementSystem/logstash/mysql-connector-j-9.2.0 /UniversityManagementSystem/logstash/logs
# 创建Redis目录
mkdir -p /UniversityManagementSystem/redis/data
# 创建Torna目录
mkdir -p /UniversityManagementSystem/torna-1.26.0
# 创建MySQL目录
mkdir -p /UniversityManagementSystem/mysql/conf /UniversityManagementSystem/mysql/data
# 创建MinIO目录
mkdir -p /home/data /home/config
# 设置权限(Linux系统)
chmod -R 777 /park_voyant /UniversityManagementSystem /home/data /home/config部署命令
- 启动所有中间件服务:
# 在包含docker-compose.yml的目录下执行
docker-compose up -d- 验证服务是否正常运行:
docker-compose ps- 查看服务日志:
# 查看特定服务日志,如MySQL
docker-compose logs -f mysql
# 查看所有服务日志
docker-compose logs -f- 停止所有服务:
docker-compose down- 停止并删除数据卷(谨慎使用):
docker-compose down -v数据库配置
数据库导入步骤
执行sql文件夹中的脚本文件创建数据库
账户密码配置
- 通过Docker Compose部署时,数据库账户为
gupt_account,密码为gupt_password - 项目配置文件中的数据库连接信息需要与Docker Compose中的配置保持一致
- 如需修改数据库连接配置,请同时更新Docker Compose文件和各服务的配置文件
启动流程
使用Docker Compose的完整启动流程
启动中间件服务:
# 在包含docker-compose.yml的目录下执行 docker-compose up -d验证中间件服务状态:
docker-compose ps确保所有中间件服务(MySQL、Nacos、Redis)都处于正常运行状态
访问Nacos控制台:
- 打开浏览器访问:http://localhost:8848/nacos
- 默认登录账号密码:nacos/nacos
导入Nacos配置(如有):
- 在Nacos控制台中导入项目所需的配置文件
- 确保所有微服务的配置都已正确设置
后端项目部署启动
- 在IDE中找到启动类
- 右键选择Run或Debug启动
前端项目部署启动
前端代码获取
# HTTPS克隆地址
git clone https://github.com/[your-username]/gupt-frontend.git邮院通前端项目基于Vue3+TDesign开发,以下是部署启动步骤:
Node.js环境要求
- 推荐Node.js版本 >= 16
- 安装完成后可通过以下命令验证:
node -v npm -v
前端项目启动
1. 安装项目依赖
进入前端项目目录后执行:
npm install2. 启动项目
npm run dev启动成功后,可以通过浏览器访问前端界面
3. 构建生产版本
项目开发完成后,执行以下命令构建生产版本:
npm run build构建完成后,生成的静态文件将位于dist目录中
Nginx部署配置
安装Nginx
Windows安装:
- 从官网下载Windows版本
- 解压到本地目录
Linux安装:
# Ubuntu/Debian apt-get update apt-get install nginx # CentOS/RHEL yum install nginx
Nginx配置示例
创建或修改Nginx配置文件(通常位于conf/nginx.conf或/etc/nginx/conf.d/目录下):
server {
listen 80;
server_name localhost;
# 前端静态资源目录
location / {
root f:/path/to/gupt-frontend/dist; # Windows路径示例
# root /path/to/gupt-frontend/dist; # Linux路径示例
index index.html index.htm;
try_files $uri $uri/ /index.html; # 支持Vue路由的history模式
}
# 后端API代理
location /api {
proxy_pass http://localhost:6080; # 后端服务地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}启动Nginx
Windows:
- 进入Nginx目录
- 双击
nginx.exe或在命令行运行:start nginx
Linux:
systemctl start nginx # 或 service nginx start
Nginx常用命令
# Windows
nginx -s reload # 重新加载配置
nginx -s stop # 停止Nginx
nginx -s quit # 优雅关闭Nginx
# Linux
systemctl reload nginx # 重新加载配置
systemctl stop nginx # 停止Nginx
systemctl restart nginx # 重启Nginx