将适用于 Docker 的 ONLYOFFICE 文档更新到最新版本
介绍
本指南将向您展示如何将适用于 Docker 的 ONLYOFFICE 文档 社区版更新到最新版本。
我们的支持政策是仅支持最新的稳定版本。我们定期发布包含新功能和错误修复的 ONLYOFFICE 文档新版本。如果您使用的是旧版本的 ONLYOFFICE 文档,我们建议升级到最新版本。
如果您使用的是旧的集成版,更新的唯一方法是卸载集成版 (onlyoffice/documentserver-ie) 并安装企业版。
在更新之前,请确保您的 Docker 版本符合系统要求(任何由 Docker 团队支持的版本)。
开始之前
-
备份您的数据。 在任何更新之前,请为已挂载的数据卷创建备份,以确保在出现问题时可以恢复。请归档以下目录:
sudo tar -czf onlyoffice-docs-backup-$(date +%Y%m%d).tar.gz \/app/onlyoffice/DocumentServer/data \/app/onlyoffice/DocumentServer/lib \/app/onlyoffice/DocumentServer/db -
记下您的当前版本。 记录当前镜像版本,以便在需要时回滚:
sudo docker inspect --format='{{.Config.Image}}' {{DOCUMENT_SERVER_ID}}
关闭 ONLYOFFICE 文档
由于操作特性,ONLYOFFICE 文档仅在所有编辑用户关闭文档后才会保存文档。为了避免数据丢失,当您需要停止 ONLYOFFICE 文档进行应用程序更新时,必须强制断开 ONLYOFFICE 文档用户。为此,请执行以下脚本:
sudo docker exec {{DOCUMENT_SERVER_ID}} documentserver-prepare4shutdown.sh
其中 {{DOCUMENT_SERVER_ID}} 代表 ONLYOFFICE 文档容器的名称或 ID。
您可以使用 Docker 命令轻松找到当前 ONLYOFFICE 文档容器的名称或 ID,该命令将列出所有现有容器:
sudo docker ps -a
执行脚本可能需要很长时间(最长可达 5 分钟)。
断开用户连接可能需要很长时间(最长可达 5 分钟)。
更新 ONLYOFFICE 文档 Docker 版本
使用脚本更新
如果您的 ONLYOFFICE 文档版本是使用以下脚本安装的,请执行以下命令:
bash docs-install.sh -u true
输入 Y 并按 Enter 键以使用 Docker 更新 ONLYOFFICE 文档。
ONLYOFFICE 文档 社区版 Docker 版本将仅在先前使用此脚本进行安装时通过脚本更新。
手动更新
步骤 1: 检查所有外部数据存储文件夹是否已挂载
确保所有用于存储 ONLYOFFICE 文档数据的容器卷都已挂载,使用以下命令:
sudo docker inspect --format='{{range $p,$conf:=.HostConfig.Binds}}{{$conf}};{{end}}' {{DOCUMENT_SERVER_ID}}
步骤 2: 停止当前的 ONLYOFFICE 文档 Docker 容器。
sudo docker stop {{DOCUMENT_SERVER_ID}}
步骤 3: 下载最新的 ONLYOFFICE 文档镜像
下载最新的 ONLYOFFICE 文档镜像,并指定 latest 标签:
docker pull onlyoffice/documentserver:latest
步骤 4: 使用相同的映射路径运行新镜像
sudo docker run -i -t -d -p 80:80 --restart=always \
-v /host_folder:/volume \
-v /host_folder:/volume -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
确保您运行新镜像时,文件夹路径的映射完全与之前版本的挂载方式一致,否则这些文件夹中存储的数据将不会被自动识别。为此,请通过替换 /host_folder:/volume 值为它们在步骤 1中显示的实际路径来指定 -v 选项参数。
如果您使用不同的端口或 HTTPS 安装了先前版本,并希望以相同方式安装新版本,请参阅以下安装说明以找到必要的命令。
安装过程完成后,运行 ONLYOFFICE 文档并检查其工作是否正常。
步骤 5(可选): 移除旧的 ONLYOFFICE 文档容器和镜像
在全面测试新版本并确认其正常工作后,您可以移除旧的 ONLYOFFICE 文档容器。在确定不需要回滚之前,请不要移除旧容器——一旦移除,恢复先前版本的唯一方法就是从备份中恢复。
sudo docker rm {{OLD_DOCUMENT_SERVER_CONTAINER_ID}}
其中 {{OLD_DOCUMENT_SERVER_CONTAINER_ID}} 代表旧 ONLYOFFICE 文档容器的名称或 ID。
如果您想释放空间,还可以移除旧的镜像。显示所有 docker 镜像:
sudo docker images -a
在镜像列表中找到不需要的镜像 ID 并移除该镜像:
sudo docker rmi {{OLD_DOCUMENT_SERVER_IMAGE_ID}}
回滚到先前版本
如果更新后的版本无法正常工作,并且您尚未移除旧的容器和镜像(请参阅步骤 5),则可以回滚:
-
停止新容器:
sudo docker stop {{NEW_DOCUMENT_SERVER_ID}} -
启动旧容器:
sudo docker start {{OLD_DOCUMENT_SERVER_ID}} -
确认旧版本工作正常。
只有在保留了旧容器(即未对其运行 docker rm)的情况下才能回滚。这就是步骤 5 被标记为可选的原因——在确信新版本正常工作之前,请不要移除旧容器。
在 v6.3 中数据库架构已更改。当更新到 v6.3(如果您使用的是带有外部数据库的 ONLYOFFICE 文档 Docker 版本)时,您可能还需要升级数据库架构以确保能够使用密码保护功能。
-
在 ONLYOFFICE Docs 容器中找到用于升级数据库架构的脚本。
- 对于 PostgreSQL:
/var/www/onlyoffice/documentserver/server/schema/postgresql/upgrade/upgradev630.sql - 对于 MySQL:
/var/www/onlyoffice/documentserver/server/schema/mysql/upgrade/upgradev630.sql
- 对于 PostgreSQL:
-
使用命令行执行脚本。
- 对于 PostgreSQL:
psql -U onlyoffice -W onlyoffice < {path-to-upgradev630.sql} - 对于 MySQL:
mysql -u root -p onlyoffice < {path-to-upgradev630.sql}
指定创建数据库时使用的密码(
onlyoffice)。 - 对于 PostgreSQL: