美文网首页
Seafile 的 office 在线预览解决方案

Seafile 的 office 在线预览解决方案

作者: miki2miki | 来源:发表于2022-03-21 10:21 被阅读0次

    此方案解决 docker-compose 方式安装的 seafile 9.0 以上的版本 office 在线预览问题

    一、docker-compose 安装

    参考:seafile docker-compose安装官方地址

    二、office 在线预览

    由于 seafile 9.0 以上对 office 在线预览采取 docker image 分离的方式,直接安装的 seafile 9.0 及以上版本是无法在线预览 office 相关文档(doc、xls、ppt等文件)。

    1.下载并修改docker-compose.yml 文件

    下载地址:docker-compose.yml

    version: '3.0'
    services:
      office-preview:
        image: seafileltd/office-preview:latest
        container_name: seafile-office-preview
        ports:
          - "8089:8089"
        command: bash start.sh
        volumes:
          - /opt/office-preview/shared:/shared  #宿主机路径可以自定义
    

    2.启动 office 容器

    docker-compose up -d
    

    启动容器后,需要手动在宿主机添加配置文件 /opt/office-preview/shared/office_convertor_settings.py 这个文件是没有的,需要自己创建。

    # -*- coding:utf-8 -*-
    
    #和 seafile 的 seahub_settings.py 里的 SECRET_KEY 保持一致
    SECRET_KEY = "o@^yktib39k+oor2_busbcxqaach_$b5zq-)4l6l39v#8ky5ta"  
    
    WORKERS = 10                   # worker 数
    OUTPUT_DIR = '/shared/output'  # 输出目录,容器内目录
    PORT = 8089                    # 服务端口,容器内端口,非映射到外部的端口
    

    添加配置后,需要重启一下 office 镜像,使 office_convertor_settings.py 配置文件生效。

    docker restart  seafile-office-preview
    

    3.修改 Seafile 的 seahub_settings.py 配置文件

    进入seafile容器内。

    docker exec -it seafile /bin/bash
    

    在 conf/seahub_settings.py 添加下列配置以便调用 Office 预览服务。

    OFFICE_CONVERTOR_ROOT = 'http://officepreview容器IP:8089'
    

    4.重启 seafile 容器

    docker restart seafile
    

    参考官方解决方案

    三.问题注意★★★

    官方给的解决方案解决的是 seafile 直接安装的模式,docker-compose 安装的方式要想达到在线预览office需要额外做些处理。

    1.seafile 容器与 seafile-office-preview 容器通信问题

    官方文档给出的同信配置为:

    OFFICE_CONVERTOR_ROOT = 'http://127.0.0.1:8089'
    

    即本地回环地址,配置后只能在 seafile 容器内通信,而不是宿主,无法和 seafile-office-preview 通信。

    那么,可以根据seafile 的 docker-compose 方式,使用相同网络配置 seafile-office-preview 的 docker-compose.yml 达到 seafile 与 seafile-office-preview 使用相同的 docker network。

    version: '3.0'
    services:
      office-preview:
        image: seafileltd/office-preview:latest
        container_name: seafile-office-preview
        ports:
          - "8089:8089"
        command: bash start.sh
        volumes:
          - /opt/office-preview/shared:/shared  ##宿主机路径可以自定义
        networks:           #配置容器的 docker network 
          - networkname     #和 seafile 使用相同的 docker network 名称
        restart: always
    
    networks:
      networkname:
        external: true     #表示已经存在,不需要创建,直接使用已有的 docker network,建议seafile 也使用此方式,可以方便自定义docker网络。
    

    使用该 docker-compose.yml 布置启动容器后,使用 docker inspect docker_network_name 命令查看 seafile-office-preview 容器 网络信息。

    ubuntu@test:~$ sudo docker inspect myseafilenet
    [
        {
            "Name": "myseafilenet",
    .....................................
    
                "c1c51263eec7b51c53faa7d42f038ba4fe1d1b17e363b8666a040c7fc0998ed7": {
                    "Name": "seafile",
                    .................................
                    "IPv4Address": "192.168.12.5/24",
                    .................................
                },
                "4d6472a627f4f8377de0ebd28a4443a73eae6b053b08be2b4ae727520e83a699": {
                    "Name": "seafile-office-preview",
                    .......................................
                    "IPv4Address": "192.168.12.4/24",
                    .......................................
                },
    ...................................
    ]
    

    查看信息可以看到,seafile 容器的地址为 192.168.12.5 ,seafile-office-preview 容器的地址为 192.168.12.4 。可以修改 seafile 容器下的 seahub_settings.py文件文件转换信息如下:

    OFFICE_CONVERTOR_ROOT = 'http://192.168.12.4:8089'
    

    重启 seafile 即可正常预览 office了。

    2.配置好 seafile 上传下载地址

    在研究 seafile 的 office 在线预览时,仅是布置了 seafile 的 初始环境,导致 office 预览文件转换出错,查看log 发现,office 需要使用 seafile 的上传下载地址。所以需要配置完 seafile 上传下载地址正常后,在配置 seafile-office-preview 相关信息。

    相关文章

      网友评论

          本文标题:Seafile 的 office 在线预览解决方案

          本文链接:https://www.haomeiwen.com/subject/hlizdrtx.html