ubuntu server 22.04 使用docker安装 onlyoffice 8.0同时添加中文字体、字号

news2025/1/18 11:45:24

本文主要介绍在ubuntu server 22.04 系统上使用docker安装onlyoffice 8.0同时添加中文字体、字号方法。

1、硬件要求

CPU:双核2 GHz或更高
内存:最少4GB
硬盘:至少40 GB可用空间
Swap file:至少4 GB,但取决于主机操作系统,越多越好。
操作系统内核:内核版本为3.10或更高版本的amd64 Linux 发行版。
其他要求:
Docker:Docker 团队支持的任何版本

2、DOCKER环境安装

ubuntu安装docker可以参考这篇文章:ubuntu server 22.04 安装docker、docker-compose

3、安装onlyoffice 8.0

创建工作目录:

mkdir -p /data/onlyoffice
mkdir -p /data/onlyoffice/config
cd /data/onlyoffice/
vi docker-compose-oo.yml

这里直接上onlyoffice的docker-compose文件,大家可以参考:

version: "3.7"
services:
  onlyoffice:
    # 定义主机名
    container_name: onlyoffice
    # 使用的镜像
    image: onlyoffice/documentserver:8.0.1
    # 容器的映射端口
    ports:
      - 36080:80
      - 36090:443
    # 定义挂载点,这里都是一些常用的目录和文件
    volumes:
      - /data/onlyoffice/documentserver/logs:/var/log/onlyoffice
      - /data/onlyoffice/documentserver/data:/var/www/onlyoffice/Data
      - /data/onlyoffice/documentserver/lib:/var/lib/onlyoffice
      - /data/onlyoffice/documentserver/db:/var/lib/postgresql
      # !!!注意:这是onlyoffice的配置目录,第一次启动的时候要注释掉!!!
      # - /data/onlyoffice/config/documentserver:/etc/onlyoffice/documentserver
    # docker 重启后,容器自启动
    restart: "on-failure:10"
    environment:
      # 是否启用jwt,不启用,生产环境有条件还是启用的好
      - JWT_ENABLED=false
      - JWT_SECRET=secret

启动onlyoffice容器:

docker-compose -f docker-compose-oo.yml up -d

启动后,将容器内目录:/etc/onlyoffice/documentserver 内容拷贝到宿主机的 /data/onlyoffice/config 目录下,方便以后进行onlyoffice的配置修改。执行复制命令:

cd /data/onlyoffice/config/
docker cp onlyoffice:/etc/onlyoffice/documentserver .

将docker-compose-oo.yml文件中的第19行,即下方的这一行的注释取消:

# - /data/onlyoffice/config/documentserver:/etc/onlyoffice/documentserver

修改后保存,然后删除原有容器,重新创建新容器。
重新启动后,查看宿主机配置目录:/data/onlyoffice/config/documentserver,如下图:其中的local.json文件就是我们后期经常用的配置文件,其他文件不需要有改动。

在这里插入图片描述

到此,onlyoffice安装成功,可以访问下地址试试:http://安装主机IP:36080,会打开如下网页:

在这里插入图片描述

如果要体验在线编辑word、excel等,可以执行onlyoffice的demo脚本进行体验,可以按上图中的第一步、第二步在服务器执行onlyoffice的demo脚本命令(直接复制执行即可),执行完成后即可点击按钮进行体验。
注意:使用docker搭建的onlyoffice服务,默认不支持内网ip编辑文件,此时创建文件进行编辑会报错,需要修改local.json配置。

在这里插入图片描述

4、修改配置

onlyoffice默认不支持内网访问,需要修改local.json文件:
注意:rabbitmq、storage配置项不要修改

# 备份原文件
mv local.json local.json.bak
vi local.json

写入新文件内容,如下:

{
  "services": {
    "CoAuthoring": {
      "server": {
        "savetimeoutdelay": 500
      },
      "requestDefaults": {
        "rejectUnauthorized": false
      },
      "sql": {
        "type": "postgres",
        "dbHost": "localhost",
        "dbPort": "5432",
        "dbName": "onlyoffice",
        "dbUser": "onlyoffice",
        "dbPass": "onlyoffice"
      },
      "request-filtering-agent": {
        "allowPrivateIPAddress": true,
        "allowMetaIPAddress": true
      },
      "autoAssembly": {
        "enable": true,
        "interval": "3s"
      },
      "token": {
        "enable": {
          "request": {
            "inbox": false,
            "outbox": false
          },
          "browser": false
        },
        "inbox": {
          "header": "Authorization",
          "inBody": false
        },
        "outbox": {
          "header": "Authorization",
          "inBody": false
        }
      },
      "secret": {
        "inbox": {
          "string": "secret"
        },
        "outbox": {
          "string": "secret"
        },
        "session": {
          "string": "secret"
        }
      }
    }
  },
  "rabbitmq": {
    "url": "amqp://guest:guest@localhost"
  },
  "storage": {
    "fs": {
      "secretString": "O7BwzFsUAfBnAIMGBA1O"
    }
  },
  "wopi": {
    "enable": false,
    "dummy": {
      "enable": true,
      "sampleFilePath": ""
    }
  },
  "FileConverter": {
    "converter": {
      "maxDownloadBytes": 524288000,
      "inputLimits": [
        {
          "type": "docx;dotx;docm;dotm",
          "zip": {
            "uncompressed": "500MB",
            "template": "*.xml"
          }
        }
      ]
    }
  }
}

保存文件,重启容器,即可访问编辑文件成功。如下图:

在这里插入图片描述

5、添加中文字体

  1. 准备中文字体
    先准备好自己需要安装的字体,可以直接从windows系统C:\Windows\Fonts下选择拷贝,也可以参考这个网址,热心人已经给整理好了,地址:onlyoffice-chinese-fonts
  2. 删除onlyoffice自带字体
    先要进入容器删除onlyoffice原有字体,注意:如果只是添加字体,且想使用原有字体的话那么就不用删除原有字体
# 进入容器
sudo docker exec -it onlyoffice bash 
# 进入容器后执行
cd /usr/share/fonts/
rm -rf *
cd /var/www/onlyoffice/documentserver/core-fonts/
rm -rf *
  1. 添加新字体
    docker cp命令将下载的字体都放到容器内的/usr/share/fonts目录下。
  2. 生成字体
    进入容器,执行命令:/usr/bin/documentserver-generate-allfonts.sh
    等待执行完成,然后退出容器,重启容器即可。
    在这里插入图片描述

6、添加中文字号

注意:onlyoffice 8.0 好像不用添加中文字号,服务已经默认自带中文字号,大家可以打开一个新的文件进行确认下。

  1. 将容器中js文件复制到宿主机
docker cp  onlyoffice:/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/app.js  app.js
  1. 修改js内容,不要用编辑器,使用vim

在app.js中查找{value:8,displayValue:"8"},在前面添加:

{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. 将修改后的js覆盖到容器中,容器中如果有app.js.gz文件的话要删掉它
docker cp app.js onlyoffice:/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/
  1. 本地清缓存刷新即可
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1682488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vmware 17pro17.5 bug 严重,建议升级17.52

近日vmware发布17.52 更新,修复了一个重大BUG. 也就是莫名其妙的CPU跟GPU占用问题。 我的系统是WIN11 跟VMWARE17.5..近日莫名其妙的发现即使什么都没运行,GPU占用也高达20%。开始以为中毒了被拿去挖矿了,后面看到VMWARE的这个更新&#xf…

最大连续1的个数(滑动窗口)

算法原理: 这道题大眼一看是关于翻转多少个0的问题,但是,如果你按照这种思维去做题,肯定不容易。所以我们要换一种思维去做,这种思维不是一下就能想到的,所以想不到也情有可原。 题目是:给定一…

中间件是什么?信创中间件有哪些牌子?哪家好用?

当今社会,中间件的重要性日益凸显,尤其是在信创背景下,选择适合的中间件产品对于推动企业数字化转型和升级具有重要意义。今天我们就来聊聊中间件是什么?信创中间件有哪些牌子?哪家好用?仅供参考哈&#xf…

15:00面试,15:08出来,面试问的有点变态。。。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天…

Java开发工具类(JDK、Hutool、Guava)

目录 Java开发常用的工具类1、JDK自带程序读取控制台输入内容(调试程序或者学习的时候比较有用)Arrays工具类 数组转集合Collections 集合工具类 排序Collections 集合工具类 查找Lambda表达式 操作集合 收集、转map、分组 2、Apache 的 commons-lang3 和…

面试框架【面试准备】

前言 2023-9-12 12:12:04 2023-09-14 16:13:04 公开发布于 2024-5-22 00:16:21 以下内容源自《【面试准备】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://blog.csdn.net/qq_51625007 禁止其他平…

本地部署Terraria泰拉瑞亚私服并通过内网穿透生成公网地址远程联机

文章目录 前言1. 下载Terraria私服2. 本地运行Terraria 私服3. 本地Terraria私服连接4. Windwos安装Cpolar 工具5. 配置Terraria远程联机地址6. Terraria私服远程联机7. 固定远程联机地址8. 固定的联机地址测试 前言 本文将为你详细介绍在本地如何运行泰拉瑞亚本地私服和结合C…

Nacos 进阶篇---Nacos服务端怎么维护不健康的微服务实例 ?(七)

一、引言 在 Nacos 后台管理服务列表中,我们可以看到微服务列表,其中有一栏叫“健康实例数” (如下图),表示对应的客户端实例信息是否可用状态。 那Nacos服务端是怎么感知客户端的状态是否可用呢 ? 本章…

DataBinding viewBinding(视图绑定与数据双向绑定)简单案例 (kotlin)

先上效果: 4个view的文字都是通过DataBinding填充的。交互事件:点击图片,切换图片 创建项目(android Studio 2023.3.1) Build.gradle(:app) 引入依赖库(完整源码) buildFeatures { vie…

常见算法(1)

1.基本查找/顺序查找 核心:从0索引之后挨个查找 实现代码: public class test {public static void main(String [] arg) throws ParseException {int[] arr {121,85,46,15,55,77,63,49};int number55;System.out.println(bashi(arr,number));}publi…

el-upload上传图片,视频可获取视频时长。

对element-ui组件的upload组件再一次封装&#xff0c;简单记录。下面是效果图。 注意点&#xff1a;该组件现在仅支持单图和单个视频上传。 <template><div :style"myStyle"><divclass"uploads":style"{width: upWith px,height: up…

多商户消费券系统源码(ThinkPHP+FastAdmin+微信公众号)

打造智能促销新体验 一、引言&#xff1a;消费券系统的时代意义 在当今这个数字化高速发展的时代&#xff0c;电子商务和移动支付已经成为人们日常生活的重要组成部分。随着市场竞争的加剧&#xff0c;多商户消费券系统作为一种创新的促销手段&#xff0c;正逐渐受到商家和消…

容器监控方案

1、docker部署prometheus Prometheus是一套开源的系统监控报警框架&#xff0c;它基于时序数据库&#xff0c;并通过HTTP协议周期性地从被监控的组件中抓取指标数据。以下是一些关于Prometheus的详细介绍&#xff1a; 基本概念&#xff1a;Prometheus所有采集的监控数据均以指…

Swift使用JSONDecoder处理json数据,实现json序列化和反序列化

Json数据处理是开发中不可获取的一项技能&#xff0c;如果你不会处理json数据&#xff0c;那你离失业就不远了&#xff0c;所以学完了swift基础教程&#xff0c;还是先老老实实学习一下json处理吧&#xff0c;有了这项技能&#xff0c;你才可以继续下一个网络请求阶段的开发&am…

深度学习之基于YoloV5车型识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 在智能交通、安全监控等领域&#xff0c;车型识别技术具有重要的应用价值。传统的车型识别方法…

栈(基于动态顺序表实现的栈)

栈的简单介绍 关于栈的性质咳咳 栈&#xff1a;栈是一种特殊的线性表,其中只让在一端插入和删除元素。 后进先出 进行插入删除的那一端叫栈顶&#xff0c;另一端叫栈底 我们实现的栈是基于一个动态顺序表的的栈&#xff0c;会实现栈的 入栈&#xff0c;出栈&#xff0c;获取…

【NumPy】关于numpy.eye()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

15:00面试,15:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

【重学C++】02 脱离指针陷阱:深入浅出 C++ 智能指针

前言 大家好&#xff0c;今天是【重学C】系列的第二讲&#xff0c;我们来聊聊C的智能指针。 为什么需要智能指针 在上一讲《01 C如何进行内存资源管理》中&#xff0c;提到了对于堆上的内存资源&#xff0c;需要我们手动分配和释放。管理这些资源是个技术活&#xff0c;一不…

Thinkphp内核开发盲盒商城源码v2.0 对接易支付/阿里云短信/七牛云存储

源码简介 这套系统是我从以前客户手里拿到的,100完整可用,今天测试防红链接失效了,需要修改防红API即可!前端页面展示我就不放了,懂的都懂 优点是Thinkphp开发的&#xff0c;二开容易。 源码图片 资源获取&#xff1a;Thinkphp内核开发盲盒商城源码v2.0 对接易支付/阿里云短…