ONLYOFFICEドキュメントサーバーにフォントを追加する:DockerとLinuxの比較

ONLYOFFICE Document Server にカスタムフォントを追加するには、ライセンスされたフォントファイルをサーバーからアクセス可能なディレクトリに配置し、コマンドを実行します/usr/bin/documentserver-generate-allfonts.sh。Docker デプロイメントの場合、コンテナの再作成後も保持されるため、実行中のコンテナにファイルをコピーするよりも、バインドマウントされたフォントディレクトリを使用する方が通常は望ましいです。

適切なインストール方法は、ONLYOFFICE Docsがどこで動作しているか、どのくらいの頻度で再構築するか、そしてフォントカタログの更新中に短時間のサービス中断を許容できるかどうかによって異なります。

ONLYOFFICEドキュメントエディタには、インストールされているフォントを表示するドロップダウンメニューとサンプルドキュメントが含まれています。
エディタのフォントドロップダウンリストには、利用可能なフォントファミリーが表示されます。不足しているフォントは、サーバーのフォントカタログが更新されるまで、代替フォントで置き換えられる場合があります。

フォントのインストール方法を選択してください

メソッド最適なフィットトレードオフ
DockerバインドマウントDocker Composeで管理される本番環境用コンテナコンテナ構成の編集が必要であり、再作成が必要になる場合があります。
docker cp実行中のコンテナへクイックテストまたは一時的な追加そのコンテナが置き換えられると、ファイルが消えることがあります。
ネイティブのドキュメントサーバーパッケージを実行しているLinuxホストにフォントをインストールします。Dockerを使用しないDEB/RPM形式のインストールサーバーレベルの管理が必要であり、そのホストに紐づけられたままとなる。

公式のDockerフォント手順書には、ファイルのコピーとフォントリストの再構築に関する説明が記載されています。Dockerのバインドマウントに関するリファレンスでは、専用のホストフォルダをマウントすることで、コンテナの置き換え後もファイルが利用可能になる理由が説明されています。これらは異なるフォント形式ではなく、異なるデプロイメント方法なのです。

フォントファイルを準備し、ターゲットサーバーを確認します。

1. アクティブな ONLYOFFICE の展開を特定する

docker psエディタがコンテナで実行される場合は、Docker ホストで実行してください。NAMES列でドキュメント サーバー コンテナ名を探します。以下の例では を使用していますonlyoffice-documentserver。異なる場合は、その値を置き換えてください。Nextcloud または ownCloud の統合によって、フォントがストレージ サーバーやドキュメントを表示するコンピューターだけでなく、ONLYOFFICE Docs サーバーにもインストールする必要があるという事実は通常変わりません。

docker ps
Ubuntuターミナルにdocker psコマンドと実行中のONLYOFFICE Document Serverコンテナが表示されています。
フォントをコピーしたりカタログを再生成したりする前に、Dockerのリストでドキュメントサーバーコンテナを探してください。

2. ライセンス付きフォントファイルを集める

ドキュメントで実際に使用するウェイトやスタイルを含む、適切なライセンスを取得した完全なフォントファミリーを選択してください。ONLYOFFICE のLinux フォントドキュメント.ttfには、TrueType や OpenType などのフォーマット、および.otfその他のサポートされているフォント拡張子が記載されています。最初の導入をスムーズに行うには、通常の TTF または OTF ファイルを使用し、フォントライセンスで許可されているサーバーおよびクライアントの使用を確認してください。

/srv/onlyoffice/custom-fontsDockerの例では、 Dockerホスト上にファイルをステージングしてください。例のファイル名Inter-Regular.ttfはInter-Bold.ttfあくまでも例示です。インストール権限のあるファイルを使用してください。

sudo mkdir -p /srv/onlyoffice/custom-fonts
sudo cp Inter-Regular.ttf Inter-Bold.ttf /srv/onlyoffice/custom-fonts/
sudo chmod 644 /srv/onlyoffice/custom-fonts/*.ttf

フォントファイルが格納されているディレクトリからこれらのコマンドを実行してください。続行する前にフォルダの内容を確認してください。管理対象システムでは、フォルダを全員に書き込み可能にするのではなく、セキュリティポリシーに合わせて所有権とアクセス許可を調整してください。

Linuxのファイルマネージャーで、custom-fontsディレクトリ内の通常フォント、太字フォント、その他のフォントファイルを表示している。
すべてのフォントバリアントを専用のディレクトリにまとめて保存し、ドキュメントサーバーコンテナにマウントできるようにします。

Dockerでの推奨事項:フォントディレクトリを永続的にマウントする

3. 既存のComposeサービスにバインドマウントを追加します。

現在の Compose ファイルで、ONLYOFFICE Document Server イメージを実行しているサービスを見つけます。既存のvolumesリストに次のエントリを追加します。既に設定されている他のボリューム、ポート、認証情報、および環境変数はそのまま保持します。

services:
  onlyoffice-documentserver:
    volumes:
      - /srv/onlyoffice/custom-fonts:/usr/share/fonts/truetype/custom:ro

ソースパスはDockerホスト上にあり、宛先はコンテナ内にあります。:roサフィックスにより、コンテナからの書き込みはフォントディレクトリに制限されます。ツリーcustom全体を置き換えるのではなく、専用ディレクトリをマウントしてください。ツリー全体を置き換えると/usr/share/fonts、イメージによって提供されるフォントが隠されてしまう可能性があります。公式のONLYOFFICE Dockerfileでは、 CommunityおよびEnterpriseイメージステージにおいて、カスタムTrueTypeフォントディレクトリをボリュームとして宣言しています。

改訂された Compose 構成を確認し、docker compose up -dプロジェクト ディレクトリから適用してください。これによりサービスが再作成される可能性があります。変更は、編集者が安全にドキュメントを閉じられるタイミングでスケジュールしてください。プレーン デプロイメントを使用する場合は、コンテナを再作成する際にdocker run、読み取り専用引数を追加してください。--mount type=bind,src=/srv/onlyoffice/custom-fonts,dst=/usr/share/fonts/truetype/custom,readonly

ホストのカスタムフォントフォルダを ONLYOFFICE にマッピングする Docker Compose ボリュームエントリを表示するコードエディタ。
専用の読み取り専用ボリュームエントリにより、カスタムフォントファイルはコンテナイメージとは別に保持されます。

4. コンテナがフォントファイルを認識できることを確認します。

サービスが起動したら、マウントされたディレクトリと、可能であればfontconfigの一覧を確認してください。fontconfigで表示されるファミリー名は、ファイル名と異なる場合があります。

docker exec onlyoffice-documentserver ls -l /usr/share/fonts/truetype/custom
docker exec onlyoffice-documentserver fc-list | grep -i 'Inter'

サンプルのInterフォントの場合、fontconfigが検出されたならば、2番目のコマンドで一致するファミリーが表示されます。ファイルが存在するにもかかわらずファミリーが表示されない場合は、アクセス許可を確認してから、再度docker exec onlyoffice-documentserver fc-cache -f確認してくださいfc-list。fontconfigによる検出だけでは、ONLYOFFICEエディタのメニューは作成されません。

ターミナルに、カスタムフォントディレクトリにインストールされているInterフォントを検索するdocker exec fc-listコマンドが表示されています。
fontconfigを確認することで、判読不能または欠落しているフォントファイルと、古いONLYOFFICEフォントカタログを区別するのに役立ちます。

5. ONLYOFFICEフォントカタログを再生成する

コンテナ内にファイルが存在する状態で、ドキュメントサーバーのフォント生成スクリプトを実行します。

docker exec onlyoffice-documentserver /usr/bin/documentserver-generate-allfonts.sh

ONLYOFFICEはこの手順を使用して、フォント選択データとアセットを更新します。アクティブなエディターサービスに影響を与える可能性があるため、適切なメンテナンス期間中に実行してください。ドキュメントに記載されているDocker環境変数GENERATE_FONTSもデフォルトで有効になっておりtrue、コンテナ起動時にフォントデータを再生成します。これは再起動後に便利ですが、ファイルを永続的な場所にインストールする代わりにはなりません。

ボリュームの欠落を隠すためだけに、設定を変更したり、強制的に再起動したりしないでくださいGENERATE_FONTS。まず、想定されるファイルが実際にマウントされていることを確認してください。

端末にdocumentserver-generate-allfonts.shコマンドとフォントカタログ生成メッセージが表示されています。
コンテナが新しいフォントファイルにアクセスできるようになったら、ドキュメントサーバーのフォント生成スクリプトを実行してください。

代替案:一時的なDockerコピーまたはネイティブLinux

6. 短期間のテストには、コンテナの直接コピーを使用する

Composeをすぐに変更できない場合は、ファイルを現在のコンテナにコピーしてカタログを再構築してください。これはONLYOFFICEのドキュメントに記載されているDockerのアプローチに準拠しており、迅速なテストのためにコンテナを再構築する必要がありません。

docker cp ./Inter-Regular.ttf onlyoffice-documentserver:/usr/share/fonts/truetype/custom/
docker exec onlyoffice-documentserver /usr/bin/documentserver-generate-allfonts.sh

これはトラブルシューティングには便利ですが、デプロイメントプランとしては信頼性が低くなります。イメージの更新や新しいコンテナによってコピーされたファイルが削除される可能性があり、同じコンテナを再起動しても再作成とは異なります。フォントが継続的な作業で必要になった場合は、テストが成功したらバインドマウントまたは別途管理されているカスタムイメージに昇格させてください。

7. コンテナ化されていないLinuxドキュメントサーバーに直接インストールする

Linuxネイティブパッケージをインストールする場合は、ファイルをサーバーのシステムフォントディレクトリに配置し、そのホスト上で同じ再生成スクリプトを実行してください。これは、一般ユーザーのデスクトップで実行するコマンドではありません。

sudo install -d -m 755 /usr/share/fonts/truetype/custom
sudo install -m 644 Inter-Regular.ttf /usr/share/fonts/truetype/custom/
sudo /usr/bin/documentserver-generate-allfonts.sh

この方法では、フォントファイルはDockerボリュームではなくLinuxインストールディレクトリ内に残りますが、ホストを再構築する際には、管理者は構成管理またはバックアップでフォントファイルを保存する必要があります。パッケージインストールサーバーに関する公式のONLYOFFICE Linux手順を参照してください。複数のドキュメントサーバーノードがエディターにサービスを提供している場合は、各ノードに同じフォントファミリーとバリアントをプロビジョニングしてください。

Linuxターミナルに、Interフォントがシステムフォントディレクトリにコピーされた後、ONLYOFFICEフォント再生成コマンドが実行された様子が表示されています。
ネイティブのLinuxドキュメントサーバー上で、そのサーバーにフォントをインストールし、Dockerコマンドを使用せずにフォントカタログを再生成します。

8. 実際の文書でフォントを確認する

ドキュメントサーバーに接続されたアプリケーションで、新しい編集セッションを開きます。テスト用のDOCXファイルで、フォントのドロップダウンリストからインストールされているフォントファミリーを選択し、通常のテキスト、太字テキスト、およびフォントが多言語対応の場合は英語以外の代表的な文字を1行ずつ入力します。保存、閉じ、再度開き、PDFにエクスポートします。テキストの幅、行の折り返し、グリフのカバー率、太字/斜体などのバリエーションを、既知の参照ドキュメントと比較します。

ドロップダウンリストにフォントが表示されない場合は、サーバーパス、 の出力fc-list、カタログ生成コマンドの順に確認してください。フォントファミリーは表示されるもののレイアウトがずれる場合は、ドキュメントが正確なフォントファミリーを要求していること、および必要なウェイトが存在することを確認してください。そうでない場合、エディタが別のフォントに置き換える可能性があります。ユーザーのデスクトップにフォントをインストールしただけでは、サーバーには追加されません。

バージョン固有のブラウザに関する注意点が1つあります。ONLYOFFICEのフォントに関する説明では、バージョン8.1.3以前の場合はブラウザのキャッシュをクリアしてエディタを再度開くように指示されています。それ以降のバージョンでは、この追加の手順は不要です。インストールが古い場合は、より複雑な原因を調査する前に、上記の手順でキャッシュをクリアしてください。

ONLYOFFICEエディターでフォントのドロップダウンリストでInterが選択されており、そのフォントファミリーを使用したサンプル段落が表示されています。
フォントファミリーがメニューに表示されていることを確認してから、保存済みのドキュメントを再度開き、行の折り返しとレンダリングされたグリフを比較してください。

修正が成功したかどうかは、エディタを再度開いた後もカスタムフォントファミリーが選択可能であり、保存したドキュメントが正しくレンダリングされ、さらに(Dockerの場合)同じ構成からサービスを再作成した後もフォントが存在するかどうかで確認できます。これらのチェックのいずれかが失敗した場合は、フォントをコンテナに繰り返しコピーするのではなく、そのレイヤーを調査してください。

コメントを残す

systemdシャットダウン画面でハングアップするSUSEサーバーを診断する

systemdシャットダウン画面でハングアップするSUSEサーバーを診断する

systemdジョブと前回の起動ジャーナルを使用して、遅いサービス、マウント、またはストレージの依存関係を特定し、原因を隠蔽することなく修正します。

SLES 15サーバーに必要なWebトラフィックのみを許可する

SLES 15サーバーに必要なWebトラフィックのみを許可する

firewall-cmd を使用してアクティブゾーンを検査し、HTTP を安全に許可し、SSH アクセスを維持し、SLES 15 でルールが再読み込み後も有効であることを確認します。

ロックアウトせずにSLES PAMログイン失敗を診断する

ロックアウトせずにSLES PAMログイン失敗を診断する

PAMの障害が発生した原因を、サービス、アカウントポリシー、またはIDプロバイダーに特定し、正常に動作する管理者セッションを維持しながら、適切なSLES構成を修復します。

SLES 15セキュアブートにカスタムカーネルモジュールをインストールして署名する

SLES 15セキュアブートにカスタムカーネルモジュールをインストールして署名する

セキュアブートを無効にせずに、カスタムSLES 15カーネルモジュールをロードします。実行中のカーネルと一致させ、.koファイルに署名し、MOKキーを登録し、ロードが成功したことを確認します。

ResticとCronを使用して、Nextcloudのバックアップを自動化し、一貫性を保つ

ResticとCronを使用して、Nextcloudのバックアップを自動化し、一貫性を保つ

NextcloudのファイルとMariaDBをまとめてバックアップし、cronを使って暗号化されたResticスナップショットをスケジュール設定し、稼働中のサーバーにリスクを負わせることなく復旧を検証します。

TGZエクスポートを使用してZimbra CEメールボックスをバックアップおよび復元する

TGZエクスポートを使用してZimbra CEメールボックスをバックアップおよび復元する

Zimbra Community Editionの個々のメールボックスをエクスポートし、そのTGZバックアップを検証し、既存のメールを上書きすることなく、不足しているアイテムを復元します。

OSTreeベースの不変システムとしてDebianデスクトップを構築する方法

OSTreeベースの不変システムとしてDebianデスクトップを構築する方法

システムツリーの準備、ブート統合、デプロイメントチェック、ロールバックなど、仮想マシン上でDebianベースのOSTreeデスクトップを作成およびテストする方法を学びます。

承認されたユーザーがKeycloakサインインを使用してJitsiルームを作成できるようにする

承認されたユーザーがKeycloakサインインを使用してJitsiルームを作成できるようにする

Keycloakとトークン認証を使用してJitsi Meetルームを開始できるのは承認済みのアカウントのみとし、必要に応じてゲスト参加も可能にする。

Active DirectoryユーザーをLDAP経由でONLYOFFICE DocSpaceと同期する

Active DirectoryユーザーをLDAP経由でONLYOFFICE DocSpaceと同期する

ONLYOFFICE DocSpaceをActive DirectoryまたはOpenLDAPに接続し、ユーザーとグループを安全にインポートし、アカウントフィールドをマッピングし、信頼性の高い同期をスケジュールします。

ONLYOFFICEドキュメントサーバーにフォントを追加する:DockerとLinuxの比較

ONLYOFFICEドキュメントサーバーにフォントを追加する:DockerとLinuxの比較

ONLYOFFICE Document Serverにカスタムフォントをインストールし、永続的なDockerマウントと直接コピーを比較し、フォントリストを再構築して、結果を検証します。