Skip to main content
開発環境で Sandbox Compiles をセットアップする場合、開発環境と本番環境にはいくつかの違いがあります。注意すべき点は次の 3 つです。
  • ファイル権限の問題
  • history-v1 と filestore 間のボリューム共有
  • サブディレクトリの問題

Sandbox Compiles を有効にする

ここでは、Overleaf CE と同じように Sandbox Compiles を有効にするだけです。ただし、ユーザーには注意が必要です。ここでは root に設定します。 本番環境では、Overleaf コンテナと TeX コンパイル用コンテナの共有ユーザーとして www-data を使用しています。しかし開発環境では、コンテナのデフォルトユーザーは node であり、これに対応する www-data ユーザーが存在しません。そのため、回避策として root を使用します。
自分でビルドしたイメージは使用しないでください。一連のエラーが発生する可能性があります。

ファイル権限を修正する

LaTeX は、TEXLIVE_IMAGE_USER 環境変数で指定されたユーザーとして兄弟コンテナ内で実行されます。上の例では uid 0 を持つ root に設定されています。この場合、root ユーザーには compiles のサブフォルダーへの書き込み権限がないため、上記の権限設定では問題が生じます。 手早い解決策は、compiles のグループ所有権を root にして読み書き権限を与え、さらに setgid を設定して新しいサブフォルダーもこの所有権を継承するようにすることです。
bash
詳細なドキュメントは services/clsi/README.md を参照してください。

history-v1 と filestore 間のボリューム共有

デフォルトでは、filestore は S3 と Overleaf の他のサービスとの橋渡し役を担います。しかし Overleaf CE や Server Pro では、デフォルトですべてのファイルがローカルに保存されます。そのため、Overleaf は非常にトリッキーな方法を導入しています。
server-ce/config/settings.js
同時に、data/history は history サービスでも使用されます。これにより、異なるマイクロサービス間で同じデータを共有できます。開発環境では、このボリューム history-v1-buckets を filestore サービスに追加する必要があります。そうしないと、clsi が filestore サービスから blob ファイルを取得できなくなります。
develop/docker-compose.yml
また、dev.env の設定に BUCKET 名を追加する必要があります。
develop/dev.env

サブディレクトリを使用する

filestore はデフォルトで useSubdirectories を true にしていますが、開発環境では history v1 がすべてのデータをフラット化します。 これによりいくつかの競合が発生します。これを解決するには、次の設定を追加する必要があります。
develop/dev.env
history v1 では、すべての project_blobs ファイルは元々次のように保存されています。
サブディレクトリモードを使用するには、useSubdirectories を true に設定する必要があります。これにより、blob 内の元の _ は / に置き換えられます。
最終更新日 2026年10月5日