docker搭建onlyoffice及使用

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/

常见问题

参考以下两个资料

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/,执行网页中的以下两条命令后即安装成功。

原文地址:https://blog.csdn.net/weixin_47425074/article/details/134336114

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


最近一直在开发Apworks框架的案例代码,同时也在一起修复Apworks框架中的Bug和一些设计上的不足。遇到的一个普遍问题是,代码的调试过程需要依赖很多外部系统,比如MongoDB、PostgreSQL、RabbitMQ等。当然可以在本机逐一安装这些服务,然后对服务进行配置,使其满足自己开发调试
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。在文本发布和处理微服务中,我打算使用微软的SQL Server for Linux来做演示,于是也就在自己的docker-compose中加入了MS SQL Server的服务。其实在Docker中运行SQL Server是非常容
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,我快速介绍了Kubernetes中分布式存储Rook-Ceph的部署过程,这里介绍如何在部署于Kubernetes的ASP.NET Core MVC的应用程序中使用Rook-Ceph所创建的存储对象。 构建ASP.NET C
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也抽空多了解了一些。项目主要基于Rook-Ceph运行,考虑到Rook-Ceph部署也不那么简单,官方文档的步骤起点也不算低,因此,在整合官方文档的某些步骤的基础上,写篇文章简单总结一下。 Rook-Ceph是Kubernetes中分布
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客之一Docker-Compose CentOS下Docker与.netcore(四)之 三剑客之一D
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客之一Docker-Compose CentOS下Docker与.netcore(四)之 三剑客之一D
构建镜像最具挑战性的一点是使镜像大小尽可能的小。Dockerfile中的每条指令都为图像添加了一个图层,您需要记住在移动到下一层之前清理任何不需要的工件。对于多阶段构建,您可以在Dockerfile中使用多个FROM语句。每个FROM指令可以使用不同的基础,并且每个指令都开始一个新的构建。您可以选择
本文介绍compose配置文件参数的使用,熟练编写compose文件 [root@docker lnmp]# cat lnmp.yaml version: '3' services: nginx: build: /root/docker_demo/nginx/ ports: - &q
环境 docker-machine主机:192.168.1.9 docker主机:192.168.1.10 步骤: 安装docker-machine 创建ssh密钥对,实现两主机无密登录 创建docker主机,命名host1 变更docker环境变量 运行容器查看两端是否同步 镜像容器同步测试成功
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客之一Docker-Compose CentOS下Docker与.netcore(四)之 三剑客之一D
https://blog.csdn.net/wanglei_storage/article/details/77508620 实践中会发现,生产环境中使用单个 Docker 节点是远远不够的,搭建 Docker 集群势在必行。然而,面对 Kubernetes, Mesos 以及 Swarm 等众多容
1.引言 紧接上篇.NET Core容器化@Docker,这一节我们先来介绍如何使用Nginx来完成.NET Core应用的反向代理,然后再介绍多容器应用的部署问题。 2. Why Need Nginx .NET Core中默认的Web Server为Kestrel。 Kestrel is grea
docker rm `docker ps -a | grep Exited | awk '{print $1}'` 删除异常停止的docker容器 docker rmi -f `docker images | grep '<none>' | awk &#3
什么是Docker Compose 在微服务盛行的今天,我们通常是这么定义Compose的:对容器的统一启动和关闭的编排工具。 但是我以前还是有个疑惑,谁会用Compose在一台服务器上部署多个服务呢?干脆直接用单体服务就行了!直到我遇到了以下的一个需求,让我明白了在一台服务器上不得不用多个服务的时
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客之一Docker-Compose CentOS下Docker与.netcore(四)之 三剑客之一D
很多时候,我们在本地开发过程中程序运行很正常,但是发布到线上之后由于环境的原因,可能会有一些异常。通常我们会通过日志来分析问题,除了日志还有一种常用的调试手段就是:附加进程。 VS中的附加进程非常强大,目前提供了9种常用的附加方式。 在当前.Net Core支持跨平台的大背景下,其中Linux环境和
https://www.cnblogs.com/bigberg/p/8867326.html 一、简介 Docker有个编排工具docker-compose,可以将组成某个应该的多个docker容器编排在一起,同时管理。同样在Swarm集群中,可以使用docker stack 将一组相关联的服务进行
.Net6中想实现对某个网址截屏,可通过Selenium模拟访问网址并实现截图。 实现 安装Nuget包 <PackageReference Include="Selenium.Chrome.WebDriver" Version="85.0.0" /&g
原文 https://www.cnblogs.com/gispathfinder/p/5871043.html 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host指定。 co