项目部署
# 基于Docker快速部署
# 1、 服务器环境
# 1.1 部署资料准备
- 服务器(建议X86服务器,本文内容是以X86服务器为例)
ARM架构服务器也可部署,未提供标准部署流程会麻烦一点。 - Docker镜像(OpenResty、OnlyOffice、Redis、zxcm、zxcm-xxl-job-admin、Mysql)
- zxcm-admin-runner.jar runner
- 前端(html.zip)
- 移动端(mobile.zip)
- 部署必要配置(docker.zip)
- 数据库脚本
# 2、 部署流程
# 2.1 服务器安装Docker
#解压docker包
tar -zxvf docker-18.06.0-ce.tgz
#将解压文件复制到/usr/bin
cp docker/* /usr/bin/
#配置docker启动命令文件(参考docker.service内容)
vi /etc/systemd/system/docker.service
#重启守护进程
systemctl daemon-reload
systemctl start docker
#查看docker状态
systemctl status docker
#设置开机启动
systemctl enable docker
#查看docker启动状态是否正确
docker -v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker.service文件内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
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
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
# 2.2 服务器安装Docker Compose
#上传docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#测试是否安装成功
docker-compose version
1
2
3
4
5
2
3
4
5
# 2.3 服务器还原Docker镜像
sudo docker load -i /镜像目录/onlyoffice.tar
sudo docker load -i /镜像目录/zxcm.tar
sudo docker load -i /镜像目录/xxljob.tar
sudo docker load -i /镜像目录/redis.tar
sudo docker load -i /镜像目录/mysql.tar
sudo docker load -i /镜像目录/openresty_1.23.3.2.tar
1
2
3
4
5
6
2
3
4
5
6
# 2.4 部署配置文件并设置权限
# 上传整个docker文件夹到服务器 /docker目录下
# 将zxcm-admin-runner.jar 、runner文件上传到服务器 /docker/server1目录下
# 将html文件部署到 /docker/nginx/html中,将mobile文件部署到 /docker/nginx/mobile中
# 简单设置权限
chmod -R 777 /docker
# 注意:这里简单的给了最高权限,如果是生产环境,请根据实际情况设置权限。
# /docker/mysql/data、/docker/redis需要写权限
# /docker/zxcm-server1/runner文件需要运行权限。
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 2.5 启动mysql
修改/docker/docker-compose.yml文件中的数据库默认密码
services:
mysql:
image: mysql:8.0.27
container_name: mysql
environment:
# 时区上海
TZ: Asia/Shanghai
# root 密码
MYSQL_ROOT_PASSWORD: myPassword
# 初始化数据库(后续的初始化sql会在这个库执行)
MYSQL_DATABASE: zxcm
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
修改/docker/server1/application-prod.yml中的数据库配置(只需要调整账号密码,url不要动)
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
# 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content
dynamic:
# 性能分析插件(有性能损耗 不建议生产环境使用)
p6spy: false
# 设置默认的数据源或者数据源组,默认值即为 master
primary: master
datasource:
# 主库数据源
master:
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://172.30.0.36:3306/zxcm?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
username: root
password: root
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
修改/docker/xxljob/application-prod.yml中的数据库配置(只需要调整账号密码,url不要动)
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://172.30.0.36:3306/zxcm?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
username: root
password: myPassword
1
2
3
4
5
6
7
2
3
4
5
6
7
启动mysql
cd /docker
docker-compose up -d mysql
# 等待mysql启动完成导入数据库脚本
1
2
3
2
3
# 2.6 启动Redis
cd /docker
docker-compose up -d redis
1
2
2
# 2.7 启动nginx
cd /docker
docker-compose up -d nginx-web
1
2
2
# 2.8 启动OnlyOffice
启动OnlyOffice
cd /docker
docker-compose up -d docServer
1
2
2
设置/docker/server1/application-office.yml
onlyoffice:
#修改为http://本地对外ip
domain: http://43.143.173.96
port: 8082
#修改为http://本机对外ip/prod-api/onlyofficeCallback
callbackUrl: http://43.143.173.96/prod-api/onlyofficeCallback
secret: zxcm
#修改为http://本机对外ip:8082/plugin/html/config.json
plugin: http://43.143.173.96:8082/plugin/html/config.json
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 2.9 启动xxl-job-admin
cd /docker
docker-compose up -d zxcm-xxl-job-admin
1
2
2
# 2.10 启动后端服务
cd /docker
docker-compose up -d zxcm-server1
1
2
2
# 2.11 验证运行状态
#查看所有容器运行状态
docker ps
#访问 http://服务器ip:80/ 进入项目界面,
#账号:zxcmAdmin 密码:默认密码
#访问 http://服务器ip:80/xxl-job-admin
#账号:admin 密码:123456
1
2
3
4
5
6
2
3
4
5
6
# 3、 版本部署包
# 3.1 准备新部署包
- zxcm-admin-runner.jar
- runner
- 前端(html.zip)
- 移动端(mobile.zip)
# 3.2 关闭服务
cd /docker
docker-compose stop nginx-web
docker-compose stop zxcm-server1
1
2
3
2
3
# 3.3 上传部署包
# 将文件runner、zxcm-admin-runner.jar上传到/docker/server1并覆盖旧文件
# 将文件html.zip上传到/docker/nginx-web/html并覆盖旧文件
# 将文件mobile.zip上传到/docker/nginx-web/mobile并覆盖旧文件
# 修改/docker/server1/runner的权限,给到执行的权限
1
2
3
4
2
3
4
# 3.4 启动服务
cd /docker
docker-compose up -d nginx-web
docker-compose up -d zxcm-server1
1
2
3
2
3
上次更新: 2025/03/18, 14:01:36