docker搭建onlyoffice及使用

avatar
作者
猴君
阅读量:0

centos8.5安装docker

  1. 安装

yum install -y docker

  1. 检测 Docker 是否安装成功

yum list installed | grep docker

  1. 设置开机自启

systemctl enable docker

  1. 启动

systemctl start docker

  1. 查看版本

docker -v

docker安装onlyoffice

  1. 拉取镜像pull OnlyOffice,建议指定版本号,其他版本在项目中可能遇到问题。
sudo docker pull onlyoffice/documentserver:7.3
  1. 运行

将本机的9000端口映射到docker的80端口上,访问时通过服务器ip:9000访问,并且用 -v 将本机机==/home/onlyOffice==文件夹挂载到docker的 /var/www/onlyoffice/documentserver/web-apps/wsData文件下,后续直接通过http请求读取对应的文件夹。JWT_SECRET填写自己定义的密钥,JWT_ENABLED设置为true开启token验证。

方式一:指定密钥和开启token

docker run -i -t -d -p 9000:80 -v /home/myOnlyOffice:/var/www/onlyoffice/documentserver/web-apps/wsData --env JWT_SECRET=VI71S3cGtXg96HgFWzQhblz1KwMc1Jzk -e JWT_ENABLED=true onlyoffice/documentserver:7.3

方式二:

docker run -i -t -d -p 9000:80 -v /home/myOnlyOffice:/var/www/onlyoffice/documentserver/web-apps/wsData onlyoffice/documentserver:7.3

推荐方式一,方式二可能出现重启服务后配置文件重置导致无法设置secret密钥的情况。

  1. 测试OnlyOffice服务

访问网址:http://172.17.0.1:9000/example/,需要以IP加端口方式访问,不能用localhost访问。

  1. 执行以下命令

根据http://172.17.0.1:9000页面上的提示,执行以下命令

sudo docker exec 856d790c064b sudo supervisorctl start ds:example

sudo docker exec 856d790c064b sudo sed 's,autostart=false,autostart=true,' -i /etc/supervisor/conf.d/ds-example.conf

  1. 若提示文档不能被保存,则关闭防火墙后重启docker,然后启动onlyoffice即可。

  1. 若提示安全令牌不正确,则使用以下命令检查secret密钥是否配置:

sudo docker exec 856d790c064b /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'

如果配置了则会显示密钥。

  1. 查看OnlyOffice版本号

参考文档:

Docker安装实践(超简单) + 安装OnlyOffice_onlyoffice docker-CSDN博客

linux安装natapp映射工具

在本地电脑安装虚拟机,在虚拟机上安装centos后。由于本地电脑暂时不能连接网线只能连接wifi,尝试了各种网络适配器的连接方式,本地电脑均不能连接虚拟机上的linux(本地电脑和虚拟机上的linux不在同一个网段),但是虚拟机上的linux可以ping通本地电脑和外网IP,所以通过natapp外网映射工具作为中间桥梁让本地电脑连接到虚拟机上的IP和端口用来测试onlyOffice。natapp的部署流程如下:

  1. 注册natapp并配置ip和端口;
  2. 在官网NATAPP-内网穿透 基于ngrok的国内高速内网映射工具下载linux版的客户端,将客户端文件(natapp)放在/download目录下;
  3. 给该客户端文件授权可执行的权限:chmod u+x natapp ;
  4. 执行命令启动客户端:./natapp -authtoken=XXXX
  5. 启动后,控制台会显示生成的外网地址,通过外网访问该地址即可访问到该linux的IP和配置的端口。

启动:/download目录下执行:./natapp -authtoken=32f063241bc276d1

安装字体和修改字号

安装字体:

  1. 准备字体文件
  • 复制c:\windows\fonts文件夹中想要安装的字体,如“仿宋 常规”

  • 粘贴到新建的“仿宋 常规”文件夹中

  • 使用FontCreator软件制作字体

点击File->Open打开字体文件(ttf格式,如果是ttc格式,按照软件提示点击下一步将文件转成ttf格式后重新进行本步骤打开对应的ttf文件即可),点击Font->Properties,修改FontFamily为字体名称,点击ok;

点击File->Export Font as->Export Desktop Font(ttf/otf),保存字体文件为ttf格式,导出文件如下图所示:

  • 使用Xftp将存放导出字体的fonts文件夹上传到“/home/fonts”目录下

  1. 进入OnlyOffice容器
docker exec -it 856d790c064b /bin/bash

  1. 删除容器下的原有字体,注意:若不需要删除原有字体则不执行本步骤
cd /usr/share/fonts/ rm -rf * cd /var/www/onlyoffice/documentserver/core-fonts/ rm -rf *

  1. 退出容器
exit

  1. 在容器外面将字体复制到容器中,注意:文件夹一定要是“fonts”,需要覆盖容器下的“fonts文件夹。

sudo docker cp /home/fonts 856d790c064b:/usr/share

  1. 进入容器
docker exec -it 856d790c064b /bin/bash

  1. 执行以下命令更新AllFonts.js文件
cd /usr/bin ./documentserver-generate-allfonts.sh

  1. 清除浏览器缓存后即可看到安装的字体

修改字号:

  1. 将容器中的app.js复制到根目录
docker cp 856d790c064b:/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/app.js ./

  1. 使用Xftp传输到本地后打开,把以下内容复制到{value:8,displayValue:"8"}前面,共3处:
{value:42,displayValue:"初号"},{value:36,displayValue:"小初"},{value:26,displayValue:"一号"},{value:24,displayValue:"小一"},{value:22,displayValue:"二号"},{value:18,displayValue:"小二"},{value:16,displayValue:"三号"},{value:15,displayValue:"小三"},{value:14,displayValue:"四号"},{value:12,displayValue:"小四"},{value:10.5,displayValue:"五号"},{value:9,displayValue:"小五"},{value:7.5,displayValue:"六号"},{value:6.5,displayValue:"小六"},{value:5.5,displayValue:"七号"},{value:5,displayValue:"八号"},

  1. 将修改后的app.js文件覆盖到容器中:
docker cp /app.js 856d790c064b:/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/app.js

  1. 重启容器

docker restart 856d790c064b

  1. 清除浏览器缓存后即可看到安装的字号

常见问题:

问题:启动项目后打开文件的时候提示token is not correctly

处理:

onlyoffice服务搭建过程中未添加自定义密钥,则会自动生成随机密钥。要获取默认密钥,请运行以下命令:

sudo docker exec 856d790c064b /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'

将获取到的密钥设置到项目中的application.properties文件:files.docservice.secret=6JLcrUAHV8SSMsk6fTG5iH0HwfMx8iau1

启动项目后打开文件的时候提示文件无法保存,请检查连接或联系管理员

处理:启动项目后,访问项目时不要使用127.0.0.1或者localhost,应使用IP地址访问如:http://172.16.1.111:9001

其他问题

若需要重新设置密钥,则按如下教程进行:

将配置文件复制到设定目录

 sudo docker cp 856d790c064b:/etc/onlyoffice/documentserver/local.json /home/myOnlyOffice

修改配置文件后覆盖到文档目录

 sudo docker cp /home/myOnlyOffice/local.json  856d790c064b:/etc/onlyoffice/documentserver/

进入容器

docker exec -it 856d790c064b /bin/bash

查看配置文件

cat /etc/onlyoffice/documentserver/local.json

为 OnlyOffice 设置密钥(JWT令牌) - ROYWANG

windows杀掉端口

查看端口号对应的进程号:

netstat -ano | findstr 8080

杀掉进程:

taskkill /f /pid 28808

springboot整合OnlyOffice

项目地址:

https://gitee.com/yinqi2030/JavaSpringOnlyOffice.git

在JavaSpringOnlyOffice\src\main\resources\application.properties文件中需配置的参数如下:

files.storage=E:\\yqfiles

server.port=9001

files.docservice.url.site=http://xabs7i.natappfree.cc/ #onlyoffice服务地址

files.docservice.secret=6JLcrUAHV8SSMsk6fTG5iH0HwfMx8iau #secret密钥

启动项目访问:http://ip:9001/即可对在线文档进行操作了

VUE组件封装方式调用onlyoffice服务

vue3脚手架搭建及运行的流程

  1. 安装nodejs
  2. 安装淘宝镜像:npm config set registry https://registry.npm.taobao.org
  3. 如果之前安装了2.0的脚手架,需要把它卸载掉,在控制台执行npm uninstall vue-cli -g 进行全局卸载
  4. 执行命令 npm install @vue/cli -g 下载vue3的脚手架
  5. 执行vue create 你的项目名称(注意不要有大写字母)
  6. 在项目路径下执行命令安装依赖:npm install
  7. 启动项目:npm run serve
  8. 启动如果报错ERROR Error: @vitejs/plugin-vue requires vue (>=3.2.13) or @vue/compiler-sfc to be present in the dependency tree. 则将vue升级到最新可用版本,在项目路径下:npm i vue@3.2.26
  9. 重新启动项目:npm run serve

运行onlyoffice官方给的整合VUE的案例

  1. 从 GitHub 存储库克隆项目:git clone GitHub - ONLYOFFICE/document-editor-vue: Vue component for ONLYOFFICE Document Server
  2. 更改 config/default.json 文件中文档服务器的地址:"documentServerUrl": "http://documentserver/";
  3. 安装react:npm i react react-dom -D
  4. 使用以下命令生成Storybook:npm run build-storybook
  5. 启动Storybook:npm run storybook
  6. 访问项目:http://localhost:6006/

常见问题

springboot整合onlyOffice后,无法打开在线文档,无法编辑保存在线文档:

因为linux系统关闭了防火墙导致的,开启防火墙后正常。

参考以下两个资料

https://www.cnblogs.com/WangJianqiu/p/17373887.html

启动vue报错 vue (>=3.2.13) or @vue/compiler-sfc_lijun_xiao2009的博客-CSDN博客

Win10系统中的docker安装OnlyOffice

安装docker

  1. win10安装docker,前提必须是要安装WSL2。

现在Docker Desktop默认使用WSL 2来运行,而不是以前的Hyper-V。

WSL2 全称是Windows Subsystem on Linux。意思是,在win10,可以直接启动一个Linux。因为docker依赖Linux内核。

  1. 下载 Linux 内核更新包

适用于 x64 计算机的 WSL2 Linux 内核更新包

点击下载最新的更新包,下好后双击运行安装即可。

  1. 打开系统虚拟机平台和WSL

控制面板->程序->启用或关闭Windows功能

选中这两个。如果提示重新启动电脑的就重启。

  1. 通过 管理员身份 运行Windows PowerShell,将WSL2设置为默认版本

wsl --set-default-version 2

  1. 去docker官网下载 ,桌面版docker, 下好后直接双击运行安装即可

Docker: Accelerated, Containerized Application Development

  1. 打开Docker Desktop

打开后如果弹出如下错误,则更新WSL

wsl --update

重新打开后正常启动。

  1. 配置国内加速镜像

点击“settings-->Docker Engine”,在最外层的“{}”中添加逗号后,将如下内容粘贴到大括号里面

  "registry-mirrors": [     "https://bd7n7e9w.mirror.aliyuncs.com",     "http://docker.mirrors.ustc.edu.cn"   ]

  1. 查看信息

查看版本:docker version

查看详细信息:docker info

  1. 更改数据存储位置

Windows版本(Windows 10)WSL 2 版本 docker 默认程序安装到c盘,数据存放于 C:\Users\当前用户名\AppData\Local\Docker\wsl\data\ext4.vhdx 这样会导致docker使用量上去C盘的空间越来越大。为了解决这个问题将数据部分移动到其他盘。

  • 停止docker

点击如下按钮退出

关闭所有发行版

wsl --shutdown

打开cmd窗口。查看停止情况,看state是否为stop

wsl --list -v

  • 备份导出目前已有的数据

wsl --export docker-desktop-data "E:\soft\dockerFile\docker-desktop-data.tar"

  • 删除原有数据

wsl --unregister docker-desktop-data

  • 导入数据到新盘

创建目录存放docker的数据,如“E:\soft\dockerFile\data”目录

wsl --import docker-desktop-data "E:\soft\dockerFile\data" "E:\soft\dockerFile\docker-desktop-data.tar" --version 2

  • 重新启动docker

docker安装OnlyOffice

  1. 拉取镜像pull OnlyOffice,建议指定版本号,其他版本在项目中可能遇到问题。
docker pull onlyoffice/documentserver:7.3

  1. 运行容器

指定secret,并开启JET校验:

docker run -i -t -d -p 9800:80 --restart=always -e JWT_SECRET=VI71S3cGtXg96HgFWzQhblz1KwMc1Jzk -e JWT_ENABLED=true onlyoffice/documentserver:7.3

  • 执行命令

打开网页http://IP:9800/,执行网页中的以下两条命令后即安装成功。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!