开源办公套件LibreOffice

本文是两个月前折腾的,虽然老苏不喜欢这种模式的容器,但也许有人需要呢


什么是 LibreOffice ?

LibreOffice 是一款开放源代码的自由免费全能办公软件,可运行于 Microsoft Windows, GNU/Linux 以及 macOS 等操作系统上。它包含了 Writer, Calc, Impress, Draw, Math 以及 Base 等组件,可分别用于文本文档、电子表格、幻灯片演示文稿、绘图文档、数学公式编辑、数据库管理等工作。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 libreoffice ,选择第三个 linuxserver/libreoffice,版本选择 latest

容器名称

就用 libreoffice 好了,因为后面会有将字体拷贝到容器的操作,会涉及到容器的名称,如果这里是默认的话,后面的命令记得修改

docker 文件夹中,创建一个新文件夹 libreoffice,并在其中建一个子文件夹 config

文件夹 装载路径 说明
docker/libreoffice/config /config 存放设置

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
3536 3000

如果不需要远程桌面连接,可以删掉 3389 端口

环境

可变
PUID <uid> 设为 1000
PGID <gid> 设为 1000
TZ 系统时区设置,设置为 Asia/Shanghai

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 新建文件夹 libreoffice 和 子目录
mkdir -p /volume2/docker/libreoffice/config

# 进入 libreoffice 目录
cd /volume2/docker/libreoffice

# 运行容器
docker run -d \
--name=libreoffice \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 3536:3000 \
-v $(pwd)/config:/config \
--restart unless-stopped \
linuxserver/libreoffice:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: "2.1"

services:
libreoffice:
image: linuxserver/libreoffice:latest
container_name: libreoffice
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- ./config:/config
ports:
- 3536:3000
restart: unless-stopped

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 libreoffice 和 子目录
mkdir -p /volume2/docker/libreoffice/config

# 进入 libreoffice 目录
cd /volume2/docker/libreoffice

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3536 就能看到主界面

可以通过文件管理(File Manager), 上传文件进行编辑

也可以通过左下角图标新建文件,但中文会乱码

中文

这应该是容器里没有中文字体导致的,在网上搜索 Songti.ttc,将下载的字体文件放到 libreoffice 目录

Songti.ttc下载地址:Songti.ttc(https://portrait.gitee.com/ishelo/QQZoneMood/blob/master/Songti.ttc)

执行下面的操作,将字体放到容器内

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 进入 libreoffice 目录
cd /volume2/docker/libreoffice

# 从群晖拷贝到容器内
docker cp ./Songti.ttc libreoffice:/usr/share/fonts/

# 进入容器内
docker exec --user root -it libreoffice /bin/bash

# 扫描字体目录并生成字体信息的缓存
fc-cache -vf

# 查看系统内所有中文字体及字体文件的路径
fc-list :lang=zh

重启容器,中文可以正常显示了

参考文档

LibreOffice
地址:https://github.com/LibreOffice

linuxserver/libreoffice - LinuxServer.io
地址:https://docs.linuxserver.io/images/docker-libreoffice

linuxserver/libreoffice - Docker Image | Docker Hub
地址:https://hub.docker.com/r/linuxserver/libreoffice