docker中onlyoffice升级指导

文章目录

  • 前言
  • 一、升级过程
    • [1. 升级容器](#1. 升级容器)
    • [2. 修改配置](#2. 修改配置)
  • 二、踩坑
    • [1. 令牌无效](#1. 令牌无效)
    • [2. 如何查看已有容器onlyoffice版本](#2. 如何查看已有容器onlyoffice版本)
    • [3. 打开文件时,一直转圈圈,后显示下载失败](#3. 打开文件时,一直转圈圈,后显示下载失败)
    • [4. 拉取镜像 (2024年12月10日有效)](#4. 拉取镜像 (2024年12月10日有效))

前言

项目使用的onlyoffice版本太老,需要进行升级。

旧版本:6.4.2-6

新版本:8.2.2-22 (2024年12月10日)


一、升级过程

1. 升级容器

bash 复制代码
# 拉取镜像
docker pull onlyoffice/documentserver
# 打上tag,防止都是latest标签;移除旧标签(请仔细检查,防止误删镜像)
docker tag aae28af46240 onlyoffice/documentserver:8.2.2-22
docker rmi onlyoffice/documentserver:latest
# 停止旧服务,
docker ps -a | grep onlyoffice
docker stop 943f3ec887b6
# 更新,起一个新的服务onlyoffice2024
docker run --name onlyoffice2024 -e JWT_ENABLED=false -i -t -d -p 9655:80 onlyoffice/documentserver:8.2.2-22

2. 修改配置

bash 复制代码
# 拷贝default.json配置文件至本地
docker cp onlyoffice2024:/etc/onlyoffice/documentserver/default.json ./default.json
# 修改本地default.json以下几行,从false改为true
"request-filtering-agent" : {
        "allowPrivateIPAddress": true,
        "allowMetaIPAddress": true
}
# 将修改后的文件拷贝到容器中覆盖
docker cp default.json onlyoffice2024:/etc/onlyoffice/documentserver/default.json
# 重启容器onlyoffice2024
docker restart 

此时就升级完成了,可以正常使用

二、踩坑

1. 令牌无效

原因:onlyoffice从7.2版本开始,默认开启jwt;

规避方法:在创建容器时,注入环境变量-e JWT_ENABLED=false关闭

2. 如何查看已有容器onlyoffice版本

进入容器,执行以下命令即可:

bash 复制代码
dpkg -l| grep onlyoffice

3. 打开文件时,一直转圈圈,后显示下载失败

先进入容器检查日志文件/var/log/onlyoffice/documentserver/converter/out.log,为It is private IP address.报错

复制代码
[2024-12-09T09:18:20.188] [ERROR] [localhost] [192.168.117.202new.docx1733735897240] [uid-1] nodeJS - error downloadFile:url=http://10.35.56.90:9655/example/download?fileName=new.docx&useraddress=192.168.117.202;attempt=3;code:null;connect:null Error: DNS lookup 10.35.56.90(family:undefined, host:undefined) is not allowed. Because, It is private IP address.
    at validateIPAddress (/snapshot/server/Common/node_modules/request-filtering-agent/lib/request-filtering-agent.js:71:20)
    at Socket.<anonymous> (/snapshot/server/Common/node_modules/request-filtering-agent/lib/request-filtering-agent.js:125:29)
    at Object.onceWrapper (node:events:641:28)
    at Socket.emit (node:events:539:35)
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1173:10)

解决办法:

bash 复制代码
# 拷贝default.json配置文件至本地
docker cp onlyoffice2024:/etc/onlyoffice/documentserver/default.json ./default.json
# 修改本地default.json以下几行,从false改为true
"request-filtering-agent" : {
        "allowPrivateIPAddress": true,
        "allowMetaIPAddress": true
}
# 将修改后的文件拷贝到容器中覆盖
docker cp default.json onlyoffice2024:/etc/onlyoffice/documentserver/default.json
# 重启容器onlyoffice2024
docker restart 

4. 拉取镜像 (2024年12月10日有效)

/etc/docker/daemon.json文件中增加如下内容,如没有该文件,使用root用户创建。

json 复制代码
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}

重新加载配置,并重启容器可解决

bash 复制代码
systemctl daemon-reload
systemctl restart docker

注意:貌似docker search还是没有用的,还是报错Error response from daemon: Get "https://index.docker.io/v1/search?q=mysql&n=25": dial tcp 108.160.172.232:443: i/o timeout

但可以使用docker pull

相关推荐
一尘之中19 小时前
在 Ubuntu 上安装 Docker 的完整指南(使用国内镜像源)
linux·docker·ai写作
睡不醒的猪儿19 小时前
域名系统DNS服务了解
运维·服务器·网络
网硕互联的小客服19 小时前
windows 服务器系统下如何通过命令还原mysql 数据库?
运维·服务器·数据库·安全
oMcLin19 小时前
如何在Ubuntu 20.04上配置并优化XFS文件系统,提升大规模数据处理与存储的性能?
linux·运维·ubuntu
杰克崔19 小时前
内核调度子系统专栏导航——包括免费专栏里调度子系统部分(持续更新)
linux·运维·服务器·车载系统
拾光Ծ19 小时前
进程程序替换与exec函数族详解 与进程替换实战:自主Shell命令行解释器实现
linux·运维·服务器·阿里云·解释器模式
黎明晓月19 小时前
Redis容器化(Docker)
java·redis·docker
叽里咕噜怪20 小时前
Kubernetes 操作与项目生命周期管理(初学者详解版)
云原生·容器·kubernetes
夫唯不争,故无尤也20 小时前
Linux 常用命令清单(实战版)+ 进程故障排查讲透:开发 / 训练 / 运维一路打穿
linux·运维·服务器
摇滚侠20 小时前
一小时Jenkins教程
运维·jenkins