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

相关推荐
van叶~15 分钟前
Linux探秘坊-------4.进度条小程序
linux·运维·小程序
颜淡慕潇1 小时前
【K8S系列】在 K8S 中使用 Values 文件定制不同环境下的应用配置
云原生·容器·kubernetes·环境配置
旦沐已成舟1 小时前
K8S-Pod的环境变量,重启策略,数据持久化,资源限制
java·docker·kubernetes
github_czy1 小时前
(k8s)k8s部署mysql与redis(无坑版)
redis·容器·kubernetes
超级阿飞1 小时前
利用Kubespray安装生产环境的k8s集群-实施篇
elasticsearch·容器·kubernetes
代码讲故事4 小时前
从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题
linux·运维·服务器·windows·远程连接·远程桌面·xrdp
milk_yan5 小时前
Docker集成onlyoffice实现预览功能
前端·笔记·docker
IT北辰7 小时前
Linux下 date时间应该与系统的 RTC(硬件时钟)同步
linux·运维·实时音视频
Shootingmemory7 小时前
自动化01
运维·自动化
苹果醋37 小时前
golang 编程规范 - Effective Go 中文
java·运维·spring boot·mysql·nginx