3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

StylezAdvent Calendar 2022

Day 18

ONLYOFFICEのアップデートで注意すべきこと

Posted at

学んだことや苦労したことをつらつらと書いていきます。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。
ONLYOFFICE7.2が2022/09/22にリリースされていたのでアップデートのテストをしたところ、ちょっとした躓きがありました。

OS: Ubuntu20.0.4


動作環境

Docker-DocumentServerのリポジトリを利用して、Docker-Composeで動作させています。

docker-compose.yml
version: '2'
services:
  onlyoffice-documentserver:
    container_name: onlyoffice-documentserver
    image: onlyoffice/documentserver-ee:7.1.1
    command: /sbin/init
    privileged: true
    depends_on:
      - onlyoffice-postgresql
      - onlyoffice-rabbitmq
    environment:
      - DB_TYPE=postgres
      - DB_HOST=onlyoffice-postgresql
      - DB_PORT=5432
      - DB_NAME=onlyoffice
      - DB_USER=onlyoffice
      - AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq
      # Uncomment strings below to enable the JSON Web Token validation.
      #- JWT_ENABLED=true
      #- JWT_SECRET=secret
      #- JWT_HEADER=Authorization
      #- JWT_IN_BODY=true
    ports:
      - '8080:80'
    stdin_open: true
    restart: always
    stop_grace_period: 60s
    volumes:
       - /var/www/onlyoffice/Data:/var/www/onlyoffice/Data
       - /var/log/onlyoffice:/var/log/onlyoffice
       - /var/lib/onlyoffice/documentserver/App_Data/cache/files:/var/lib/onlyoffice/documentserver/App_Data/cache/files
       - /var/www/onlyoffice/documentserver-example/public/files:/var/www/onlyoffice/documentserver-example/public/files
       - /usr/share/fonts:/usr/share/fonts
       - onlyoffice_config:/etc/onlyoffice/documentserver

  onlyoffice-rabbitmq:
    container_name: onlyoffice-rabbitmq
    image: rabbitmq
    restart: always
    expose:
      - '5672'

  onlyoffice-postgresql:
    container_name: onlyoffice-postgresql
    image: postgres:9.5
    environment:
      - POSTGRES_DB=onlyoffice
      - POSTGRES_USER=onlyoffice
      - POSTGRES_HOST_AUTH_METHOD=trust
    restart: always
    expose:
      - '5432'
    volumes:
      - postgresql_data:/var/lib/postgresql

volumes:
  postgresql_data:
  onlyoffice_config:

local.jsonに変更を加えたいため、/etc/onlyoffice/documentserver/local-production-linux.jsonを作成して、そちらに設定を追加します。(local.jsonはコンテナを再起動するたびに書き換わってしまうため。)
設定ファイルの変更を保持するため、docker volumeを利用しています。

docker-compose.yml
    volumes:
       - onlyoffice_config:/etc/onlyoffice/documentserver

volumes:
  onlyoffice_config:

アップデートしてみる

docker imageの部分を7.2に変更します。

docker-compose.yml
version: '2'
services:
  onlyoffice-documentserver:
    container_name: onlyoffice-documentserver
    image: onlyoffice/documentserver-ee:7.2.0

exampleサーバーを起動して動作確認してみます。
image.png
...ドキュメントが開けない。

コンテナに入ってサービスを再起動してみましょう。

# supervisorctl restart all
ds:metrics: stopped
ds:example: stopped
ds:converter: ERROR (spawn error)
ds:metrics: started
ds:example: started
ds:docservice: ERROR (spawn error)

converterとdocserviceが起動できていない様子。
ログを見ても以下の通り。

Error: Configuration property "tenants.baseDomain" is not defined
    at Config.get (/snapshot/server/build/server/Common/node_modules/config/lib/config.js:203:11)
    at Object.<anonymous> (/snapshot/server/build/server/Common/sources/tenantManager.js)
    at Module._compile (pkg/prelude/bootstrap.js:1930:22)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at Module.require (pkg/prelude/bootstrap.js:1855:31)
    at require (internal/modules/cjs/helpers.js:101:18)

tenants.baseDomainというパラメータは設定した覚えがないので、default.jsonに変更があったと考えられますが、docker環境で設定ファイルをマウントしていると自動で書き換わってくれないようです。(deb/rpm インストールの場合は書き換わるようです。)

一応local.jsonを見てみると、パラメータが追加されていました。(local.jsonが書き換わるならdefault.jsonも書き換わって欲しい...)

local.json
{
  "services": {
    "CoAuthoring": {
      "sql": {
        "type": "postgres",
        "dbHost": "onlyoffice-postgresql",
        "dbPort": "5432",
        "dbName": "onlyoffice",
        "dbUser": "onlyoffice",
        "dbPass": "onlyoffice"
      },
      "redis": {
        "host": "localhost"
      },
      "token": {
        "enable": {
          "request": {
            "inbox": true,
            "outbox": true
          },
          "browser": true
        },
        "inbox": {
          "header": "Authorization",
          "inBody": false
        },
        "outbox": {
          "header": "Authorization",
          "inBody": false
        }
      },
      "secret": {
        "inbox": {
          "string": "LnOrEFUdkkHOqttQeEx4"
        },
        "outbox": {
          "string": "LnOrEFUdkkHOqttQeEx4"
        },
        "session": {
          "string": "LnOrEFUdkkHOqttQeEx4"
        }
      }
    }
  },
  "rabbitmq": {
    "url": "amqp://guest:guest@onlyoffice-rabbitmq"
  },
  "queue": {
    "type": "rabbitmq"
  },
  "storage": {
    "fs": {
      "secretString": "tL8oZBLN0LdQpvwbdgGj"
    }
  }
}

以下の部分がONLYOFFICE 7.1では無かった設定項目です。

  "storage": {
    "fs": {
      "secretString": "tL8oZBLN0LdQpvwbdgGj"
    }
  }

JWTのsecretも自動で生成されるようになっていますね。

      "secret": {
        "inbox": {
          "string": "LnOrEFUdkkHOqttQeEx4"
        },
        "outbox": {
          "string": "LnOrEFUdkkHOqttQeEx4"
        },
        "session": {
          "string": "LnOrEFUdkkHOqttQeEx4"
        }
      }

パラメータが増えているようなので、変に格闘するのはやめて新しくdocker volumeを作ることにしました。

docker-compose.yml
    volumes:
       - onlyoffice_config_7.2:/etc/onlyoffice/documentserver

volumes:
  onlyoffice_config_7.2:

動作します。(当然ですが)
image.png

まとめ

ONLYOFFICE 7.1 → ONLYOFFICE 7.2 でパラメータが増えているようで、既存の設定ファイルは利用できませんでした。
ホストに設定ファイルを配置してバインドしている方もいると思いますが、一度docker volumeを作成して丸々持ってくることをお勧めします。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?