onlyoffice本地服务搭建(window环境的docker)

2,397 阅读2分钟

1.docker环境安装

  1. 首先跳过docker安装,下载安装包一步一步来即可。
  2. windows模式下开启experimental实验性(未开启下可能会出现插件找不到)
  3. 配置国内镜像地址:
"registry-mirrors": [
    "https://do.nark.eu.org",
    "https://dc.j8.work",
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://docker.nju.edu.cn"
  ]

附(2,3)图: image.png 此时docker环境基本安装完毕

2.docker安装并运行onlyoffice

docker安装onlyoffice镜像:

创建一个容器并运行指令:
(不含挂载路径)
docker run -i -t -d -p 本地计算机端口:docker端口 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
(含挂载路径)
docker run -i -t -d -p 本地计算机端口:docker端口 --restart=always -v 磁盘路径/logs:/var/log/onlyoffice -v 磁盘路径/data:/var/www/onlyoffice/Data -v 磁盘路径/lib:/var/lib/onlyoffice -v 磁盘路径/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
-i -t 交互运行容器分配伪终端
-d 后台运行
-p 映射端口
--restart=alaways 重启策略总是
-v 挂载
-e 环境变量
onlyoffice/documentserver-de 镜像

4.vue项目运行onlyoffice

安装依赖:npm install --save @onlyoffice/document-editor-vue

测试代码如下
<template>
<DocumentEditor
    id="docEditor"
    documentServerUrl="docker部署后onlyoffice可访问地址"
    :config=""
    :events_onDocumentReady="onDocumentReady"
    :onLoadComponentError="onLoadComponentError"
/>
</template>
<script>
import { defineComponent } from 'vue';
import { DocumentEditor } from "@onlyoffice/document-editor-vue";

export default defineComponent({
  name: 'ExampleComponent',
  components: {
    DocumentEditor
  },
  data() {
    return {
     // 配置文档查阅
     // [配置](https://api.onlyoffice.com/docs/docs-api/get-started/frontend-frameworks/vue/)
     // [配置](https://api.onlyoffice.com/docs/docs-api/usage-api/config/)
      config: {
        // token:'', 有令牌时的验证必须有token不然会出下[WARN] [localhost] [82498d83b4fb49d1050b] [userId] nodeJS - checkJwt error: name = JsonWebTokenError message = jwt must be provided token = undefined 类似的错误。
        document: {
          fileType: "doc",
          // key: 'WnSlx7p2UWCFJoYsR1ey',
          title: "标题",
          url: "文件可访问url"
        },
        documentType: "word",
      }
    }
  },
  methods: {
    onDocumentReady() {
      console.log("Document is loaded");
    },
    onLoadComponentError (errorCode, errorDescription) {
      switch(errorCode) {
        case -1: // Unknown error loading component
          console.log(errorDescription);
          break;

        case -2: // Error load DocsAPI from docker部署后onlyoffice可访问地址
          console.log(errorDescription);
          break;

        case -3: // DocsAPI is not defined
          console.log(errorDescription);
          break;
      }
    }
  },
});
</script>

预览暂不展示

注意事项:

以目前的版本都是开启验证,没有配置会出没有权限的情况。也可以通过修改配置文件:/etc/onlyoffice/documentserver/local.json下的配置关闭校验

image.png 附上参数

    "token": {
        "enable": {
          "request": {
            "inbox": false,
            "outbox": false
          },
          "browser": false
        },
        "inbox": {
          "header": "Authorization",
          "inBody": false
        },
        "outbox": {
          "header": "Authorization",
          "inBody": false
        }
      },

这个地方重启docker或者升级onlyoffice会重置配置。所有这个地方需要使用docker指令: supervisorctl restart all 重启所有由Supervisor管理的进程