【DockerCE】onlyoffice从7.2 版本开始默认启用JWT
命令,其实就是获取local.json里面随机生成的密钥信息。我这边直接将容器里面的local.json(本地先创建一个和容器里面内容一致的同名文件),然后在配置文件中将本地文件和容器文件进行映射。查询资料后,发现这个报错与7.2版本默认开启 JWT 令牌有关系(7.2之前的版本,并没有出现过这样的报错)。配置修改后保存,将容器down掉,重新up -d,然后再测试使用onlyoffice打开wo
今天准备升级使用docker-ce安装和运行的seafile网盘社区版的onlyoffice组件到最新的7.2版本。
使用下面的命令下载最新的7.2版本的onlyoffice镜像:
# docker pull onlyoffice/documentserver:7.2
# docker images| egrep "REPOSITORY|onlyoffice"
REPOSITORY TAG IMAGE ID CREATED SIZE
onlyoffice/documentserver 7.2 add62637ac9b 3 weeks ago 3.35GB
然后修改docker-compose的配置文件中的版本配置:
onlyoffice:
image: onlyoffice/documentserver:7.2
container_name: onlyoffice
ports:
- "18081:80"
extra_hosts:
- "www.myseafile.org:192.168.223.199"
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
networks:
- seafile-net
更新配置后,使用docker-compose来启动seafile网盘,网盘服务启动成功后,发现使用onlyoffice 7.2版本来打开网盘中的word文档,出现了下面的报错提示:
查询资料后,发现这个报错与7.2版本默认开启 JWT 令牌有关系(7.2之前的版本,并没有出现过这样的报错)。从onlyoffice的欢迎页面也可以看出来,从7.2版本开始,onlyoffice将默认启用JWT令牌功能。
上面的 docker exe [ onlyoffice_container_name ] 命令,其实就是获取local.json里面随机生成的密钥信息。onlyoffice的容器ID可以通过docker ps来获取。我这边直接将容器里面的local.json(本地先创建一个和容器里面内容一致的同名文件),然后在配置文件中将本地文件和容器文件进行映射。
onlyoffice:
image: onlyoffice/documentserver:7.2
container_name: onlyoffice
ports:
- "18081:80"
extra_hosts:
- "www.myseafile.org:192.168.223.199"
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
- /data/onlyoffice/DocumentServer/local.json:/etc/onlyoffice/DocumentServer/local.json
networks:
- seafile-net
然后在seahub_settings.py文件中增加下面的配置信息。
ONLYOFFICE_JWT_SECRET = 'xxxxxx'
配置修改后保存,将容器down掉,重新up -d,然后再测试使用onlyoffice打开word文件,发现还是无法正常打开,但是这次的报错变成了:下载失败。但是,网盘本身的文件上传、下载都是正常的。
这个问题目前还没有找到原因,只好还原配置,回退到onlyoffice 7.1版本镜像。回退后,使用onlyoffice 7.1打开、编辑文档,恢复正常。
------------------------------------ 2023/9/28日 更新 ------------------------------------
Onlyoffice 7.2 版本 JWT 认证解决方案说明如下:
在docker-compose.yml里面的onlyoffice配置,增加下面的配置:
environment:
- JWT_ENABLED=true
- JWT_SECRET=my_little_secret
- JWT_HEADER=Authorization
- JWT_IN_BODY=true
在 seahub_settings.py 原有文档编辑配置中增加下面的配置:
VERIFY_ONLYOFFICE_CERTIFICATE = True
ONLYOFFICE_JWT_SECRET = 'my_little_secret'
重启容器实例,即可解决文档无法打开和编辑的问题。
补充故障记录:
onlyoffice 7.3容器(7.2版本估计也存在)与docker-ce 19.0存在兼容性问题,onlyoffice容器实例启动后,端口异常,docker logs [container ID] -f 会看见下面的报错,联网查询,Github上的记录是兼容性存在问题,将 onlyoffice 镜像版本降级到 7.1 后,启动容器实例成功,可以正常编辑文档。
------------------------------------ 2023/9/28日 更新 ------------------------------------
参考:
https://forum.seafile.com/t/seafile-pro-7-1-3-with-onlyoffice-secret-jwt-blank-screen/11629
https://roy.wang/onlyoffice-set-jwt-key/
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)