Docker版ONLYOFFICE Docsを最新バージョンに更新する
はじめに
このガイドでは、ONLYOFFICE Docs コミュニティ版のDockerバージョンを最新バージョンに更新する方法を紹介します。
サポートポリシーとして、最新の安定版のみをサポートしています。ONLYOFFICE Docsは定期的に新しい機能やバグ修正を含む新バージョンをリリースしています。古いバージョンを使用している場合は、最新バージョンへのアップグレードをお勧めします。
古いインテグレーション版を使用している場合、更新する唯一の方法は、インテグレーション版(onlyoffice/documentserver-ie)をアンインストールし、代わりにエンタープライズ版をインストールすることです。
更新する前に、Dockerのバージョンがシステム要件(Dockerチームがサポートするバージョン)に対応していることを確認してください。
始める前に
-
データをバックアップします。 更新の前に、問題が発生した場合に復元できるよう、マウントされたデータボリュームのバックアップを作成してください。次のディレクトリをアーカイブします:
sudo tar -czf onlyoffice-docs-backup-$(date +%Y%m%d).tar.gz \/app/onlyoffice/DocumentServer/data \/app/onlyoffice/DocumentServer/lib \/app/onlyoffice/DocumentServer/db -
現在のバージョンを記録します。 ロールバックが必要になった場合に備えて、現在のイメージのバージョンを記録しておきます:
sudo docker inspect --format='{{.Config.Image}}' {{DOCUMENT_SERVER_ID}}
ONLYOFFICE Docsのシャットダウン
運用上の特性により、ONLYOFFICE Docsは、すべての編集者がドキュメントを閉じた後にのみドキュメントを保存します。データ損失を避けるため、アプリケーションの更新時にONLYOFFICE Docsを停止する必要がある場合は、ONLYOFFICE Docsのユーザーを強制的に切断する必要があります。そのためには、次のスクリプトを実行してください:
sudo docker exec {{DOCUMENT_SERVER_ID}} documentserver-prepare4shutdown.sh
ここで、{{DOCUMENT_SERVER_ID}} はONLYOFFICE Docsのコンテナ名またはIDを表します。
現在のONLYOFFICE Docsのコンテナ名またはIDは、すべての既存のコンテナをリストするDockerコマンドを使用して簡単に確認できます:
sudo docker ps -a
スクリプトの実行には長時間(最大5分)かかる場合があります。
ユーザーの切断には長時間(最大5分)かかる場合があります。
Docker版ONLYOFFICE Docsの更新
スクリプトを使用した更新
次のスクリプトを使用してONLYOFFICE Docsをインストールした場合は、次のコマンドを実行してください:
bash docs-install.sh -u true
Yを入力し、Enterを押してDockerを使用してONLYOFFICE Docsを更新します。
ONLYOFFICE Docs コミュニティ版のDockerバージョンは、このスクリプトを使用してインストールされた場合にのみスクリプトを使用して更新されます。
手動での更新
ステップ1: すべての外部データストレージフォルダがマウントされているか確認する
次のコマンドを使用して、ONLYOFFICE Docsデータを保存するために使用されるすべてのコンテナボリュームがマウントされていることを確認してください:
sudo docker inspect --format='{{range $p,$conf:=.HostConfig.Binds}}{{$conf}};{{end}}' {{DOCUMENT_SERVER_ID}}
ステップ2: 現在のONLYOFFICE Docs Dockerコンテナを停止する。
sudo docker stop {{DOCUMENT_SERVER_ID}}
ステップ3: 最新のONLYOFFICE Docsイメージをダウンロードする
latestタグを指定して最新のONLYOFFICE Docsイメージをダウンロードします:
docker pull onlyoffice/documentserver:latest
ステップ4: 同じマップパスで新しいイメージを実行する
sudo docker run -i -t -d -p 80:80 --restart=always \
-v /host_folder:/volume \
-v /host_folder:/volume -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
新しいイメージを、以前のバージョンでマウントされていたフォルダパスとまったく同じように実行することを確認してください。そうしないと、これらのフォルダに保存されているデータが自動的に取得されません。そのためには、-vオプションの引数を指定し、/host_folder:/volumeの値をステップ1で表示された実際のパスに置き換えてください。
以前のバージョンを異なるポートまたはHTTPSを使用してインストールし、新しいバージョンも同様にインストールしたい場合は、必要なコマンドを見つけるために次のインストール手順を参照してください。
インストールプロセスが終了したら、ONLYOFFICE Docsを実行し、正しく動作するか確認してください。
ステップ5(オプション): 古いONLYOFFICE Docsコンテナとイメージを削除する
新しいバージョンを十分にテストし、正しく動作することを確認したら、古いONLYOFFICE Docsコンテナを削除できます。ロールバックの必要がないと確信できるまでは、古いコンテナを削除しないでください。削除すると、以前のバージョンを復元する唯一の方法はバックアップからの復元になります。
sudo docker rm {{OLD_DOCUMENT_SERVER_CONTAINER_ID}}
ここで、{{OLD_DOCUMENT_SERVER_CONTAINER_ID}} は古い ONLYOFFICE Docsコンテナ名またはIDを表します。
スペースを解放したい場合は、古いイメージも削除できます。すべてのDockerイメージを表示します:
sudo docker images -a
イメージリストで不要なイメージIDを見つけ、イメージを削除します:
sudo docker rmi {{OLD_DOCUMENT_SERVER_IMAGE_ID}}
以前のバージョンへのロールバック
更新したバージョンが正しく動作せず、古いコンテナとイメージをまだ削除していない場合(ステップ5を参照)、ロールバックできます:
-
新しいコンテナを停止します:
sudo docker stop {{NEW_DOCUMENT_SERVER_ID}} -
古いコンテナを起動します:
sudo docker start {{OLD_DOCUMENT_SERVER_ID}} -
古いバージョンが正しく動作することを確認します。
ロールバックは、古いコンテナを残している場合(つまり、そのコンテナに対してdocker rmを実行していない場合)にのみ可能です。そのため、ステップ5はオプションとされています。新しいバージョンが動作すると確信できるまでは、古いコンテナを削除しないでください。
バージョン6.3でデータベーススキーマが変更されました。バージョン6.3に更新する際(Docker版ONLYOFFICE Docsを外部データベースで使用している場合)、パスワード保護機能を使用するためにデータベーススキーマをアップグレードする必要がある場合があります。
-
ONLYOFFICE Docsのコンテナー内で、データベーススキーマをアップグレードするためのスクリプトを見つけます。
- PostgreSQL用:
/var/www/onlyoffice/documentserver/server/schema/postgresql/upgrade/upgradev630.sql - MySQL用:
/var/www/onlyoffice/documentserver/server/schema/mysql/upgrade/upgradev630.sql
- PostgreSQL用:
-
コマンドラインを使用してスクリプトを実行します。
- PostgreSQL用:
psql -U onlyoffice -W onlyoffice < {path-to-upgradev630.sql} - MySQL用:
mysql -u root -p onlyoffice < {path-to-upgradev630.sql}
データベース作成時に使用したパスワード(
onlyoffice)を指定してください。 - PostgreSQL用: