Spire.Cloud 私有化部署教程(七) - Docker (Linux/amd64) 镜像

对于Spire.Cloud v10.8 及以上版本,我们推出适用于Linux/amd64系统通过镜像 (ubuntu24.04spire.tar)的私有化部署方式,可以部署在不同Linux/amd64环境。部署包包含Spire.cloud 在线编辑产品基于ubuntu24.04编译好的镜像( ubuntu24.04spire.tar),以及依赖库MySQL和RabbitMQ部署镜像。此部署方式同样也支持离线环境的部署,具体安装步骤如下:

Spire.Cloud 私有化部署安装包及验证授权

私有化部署需要应用有效的 license 文件,否则在线编辑服务和 WEB API 服务将不能正常运行。请联系我们邮箱:该 Email 地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。;电话:028-81705109,可以获取临时 license 文件进行评估测试。

系统配置

关闭防火墙:

1)查看当前防火墙的状态:firewall-cmd --state

2)关闭防火墙:systemctl stop firewalld.service

3)再次查看状态,检查防火墙是否已经关闭:firewall-cmd --state

静态IP配置:

1)命令:vi /etc/sysconfig/network-scripts/ifcfg-ens32,打开配置文件编辑配置。

2)命令:systemctl restart network 重启网络服务。

3)命令: ip addr 查看当前 ip 地址,确认是否修改成功。

确认Docker 的安装:

部署 Spire.Cloud

1)将获取的部署安装包拷贝到要部署的Linux系统解压。

Docker安装MySQL

(1)加载mysql的镜像docker load --input mysql8.0.40.tar

(2)docker images命令查看镜像,如果mysql镜像没有tag可以执行:

docker tag <IMAGE_ID> mysql:8.0.40

(3)启动mysql的容器,设置MySQL端口为:3306,密码设置为:root

sudo docker run \

-p 3306:3306 --name mysql \

-e MYSQL_ROOT_PASSWORD=root \

-d mysql:8.0.40

(4)在当前目录下新建一个my.cnf文件

文件内容为:

[client]

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

[mysqld]

init_connect="SET collation_connection = utf8mb4_unicode_ci"

init_connect="SET NAMES utf8mb4"

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

skip-name-resolve

(5)上传当前目录下的createdb.sql和my.cnf 两个文件到mysql容器里面

docker cp createdb.sql <CONTAINER_ID>:/opt/

docker cp my.cnf <CONTAINER_ID>:/etc/mysql/conf.d/

(6)登录mysql的容器依次执行下面的操作

//登录容器

docker exec -it <CONTAINER_ID> /bin/bash

//登录数据库。密码为启动容器时候设置的密码root

mysql -u root -p;

//初始化数据

source /opt/createdb.sql

//允许远程访问数据库

ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

//使更改立即生效

FLUSH PRIVILEGES;

(7)查看mysql端口启动状态

docker inspect mysql --format='{{.State.Status}}'

docker port mysql

Docker安装RabbitMQ

(1)加载RabbitMQ的镜像:docker load --input rabbitmq3.13.7.tar

(2)docker images命令查看镜像,如果rabbitmq镜像没有tag可以执行docker tag <IMAGE_ID> rabbitmq:3.13.7-management

(3)启动rabbitmq服务

docker run \

-d --name rabbitmq \

-p 5672:5672 \

-p 15672:15672 \

-v /path/to/data:/var/lib/rabbitmq rabbitmq:3.13.7-management

(4)添加rabbitmq用户

默认登录用户guest 密码guest,按照下面步骤,添加新的root用户,密码root。

//启动RabbitMQ

docker start RabbitMQ

//进入RabbitMQ容器

docker exec -it rabbitmq /bin/bash

//添加用户root,密码root

rabbitmqctl add_user root root

//设置管理员权限

rabbitmqctl set_user_tags root administrator

rabbitmqctl set_permissions -p / root ".*"

//验证是否添加用户成功

rabbitmqctl list_users

(5)查看RabbitMQ启动是否正常

docker inspect rabbitmq --format='{{.State.Status}}'

docker port rabbitmq

另外,也可以通过浏览器访问IP:15672,如http://192.168.4.56:15672/ 添加用户并设置管理员权限。

点击Add user按钮后,显示如下:

为root用户设置权限

点击 Set permission 后, 显示如下:

Spire.Cloud部署

(1)加载ubuntu24.04:spire的本地镜像:docker load --input ubuntu24.04spire.tar

(2)docker images命令查看镜像,如果没有tags,执行:

docker tag <IMAGE_ID> ubuntu/ubuntu24.04:spire

(3)启动容器,IP地址为您部署服务器宿主机IP:

执行次命令前首先确保 3000、8000、8050端口没被占用(命令中的-v /home/App_Data:/opt/spire/spire.cloud/storage/App_Data 为映射缓存数据到宿主机磁盘空间的功能,如果不需要则去掉即可。可以自定义设置其它路径)

docker run -itd --privileged --name spirecl -e IP_ADDR="192.168.4.56" -p 3000:3000 -p 8000:8000 -p 8050:8050 -v /home/App_Data:/opt/spire/spire.cloud/storage/App_Data ubuntu/ubuntu24.04:spire

(4)绑定授权

a.如果你的部署环境是联网环境,请将获取的license.elic.xml授权文件复制到容器

【/opt/spire/spire.cloud/service/ConverterService/bin/license/】目录下。

docker cp license.elic.xml <CONTAINER_ID>:/opt/spire/spire.cloud/service/ConverterService/bin/license/

b.进入容器执行绑定授权的脚本,针对 xml授权文件设置读写权限(chmod -R 777 license.elic.xml)

docker exec -it spirecl bash

cd /opt/spire/

sh binding_license.sh

绑定成功的license.elic.xml文件最下面会多出信息。如果绑定失败或你的环境是离线部署,请联系我们该 Email 地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。进行绑定后使用。

(5)初始化安装字体

sh genallfonts.sh

(6)更改配置文件/opt/spire/spire.cloud/service/Common/config/default.json中的mysql的dbPass 、dbHost和rabbitmq的url地址(可以安装vim进行编辑 apt install vim), 箭头所指位置改为宿主机的ip地址

apt update

apt install vim

vim /opt/spire/spire.cloud/service/Common/config/default.json

(7)修改example配置文件中的IP_ADDR为宿主机的ip

vim /opt/spire/spire.cloud/example/config/default.json

(8)启动服务

cd /opt/spire/spire.cloud/

sh cloudServices start

sh exampleServices start

(9)为了保证文档另存为其它格式(例如PDF,XPS等)的效果一致性,请在容器/usr/share/fonts/下安装相应文档使用的字体。

docker cp /usr/share/fonts/ <CONTAINER_ID>:/usr/share/fonts/

四、测试使用在线编辑功能

Spire.Cloud 产品主要涉及的端口服务:8000 在线编辑服务(如需嵌入你的文档系统请参考前端快速接入8000编辑服务示例);3000 示例文件系统服务;8050 WebAPI接口服务。我们可以使用3000示例服务进行体验测试 ,在浏览器地址栏输入“[服务器 ip]:3000”(针对本次部署: 192.168.4.56:3000),出现以下界面:

“Upload File”按钮可以上传Word,Excel, PowerPoint格式文档进行编辑和预览,上传PDF文档进行预览。

”Create Document”创建一个新的Word文档:

”Create Spreadsheet”创建一个新的Excel文档:

”Create Presentation”创建一个新的PowerPoint文档: