【DockerCE】onlyoffice从7.2 版本开始默认启用JWT

        今天准备升级使用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/ 

好的,关于 docker 安装 onlyoffice 7.0 版本,您可以参考下面的步骤: 1. 首先安装 dockerdocker-compose,并确保已经安装成功。 2. 创建一个新的 onlyoffice 7.0 目录,并在该目录中创建 docker-compose.yml 文件,并将以下内容添加到该文件中: ``` version: '3' services: onlyoffice-document-server: image: onlyoffice/documentserver:7.0.0.28 restart: always ports: - "0.0.0.0:80:80" - "0.0.0.0:443:443" environment: - JWT_ENABLED=true - JWT_SECRET=yourSecret #替换为您自己的密钥 volumes: - /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data - /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice depends_on: - redis onlyoffice-mail-server: image: onlyoffice/mailserver restart: always environment: - SSL_TYPE=letsencrypt - DOMAIN=yourdomain.com #替换为您自己的域名 - ONLYOFFICE_MAIL_SERVER_API_HOST=onlyoffice-document-server - ONLYOFFICE_MAIL_SERVER_API_PORT=80 - POSTGRESQL_SERVER=pgsql volumes: - /app/onlyoffice/MailServer/data:/var/vmail - /app/onlyoffice/MailServer/logs:/var/log/mail - /app/onlyoffice/MailServer/config/ssl:/etc/pki/tls/mailserver ports: - "0.0.0.0:25:25" - "0.0.0.0:143:143" - "0.0.0.0:587:587" - "0.0.0.0:993:993" depends_on: - onlyoffice-document-server - pgsql redis: image: redis:latest restart: always pgsql: image: onlyoffice/postgresql:9.6 restart: always environment: - POSTGRES_DB_NAME=onlyoffice - POSTGRES_USER=onlyoffice - POSTGRES_PASSWORD=onlyoffice #替换为您自己的密码 volumes: - /app/onlyoffice/PostgreSQL:/var/lib/postgresql/data ports: - "0.0.0.0:5432:5432" ``` 3. 使用以下命令构建和启动 onlyoffice: ``` docker-compose up -d ``` 4. 等待一段时间,onlyoffice 将会自动启动,您可以通过访问 https://yourdomain.com 来访问 onlyoffice。 希望这些步骤能够帮助您安装 onlyoffice 7.0 版本
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cnskylee

技术分享我是认真的,期待您打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值