Skip to main content
Wenn Sie die Sandbox-Kompilierung für die Entwicklung einrichten möchten, gibt es einige Unterschiede zwischen Entwicklungs- und Produktionsumgebung. Drei Dinge müssen Sie beachten:
  • Problem mit Dateiberechtigungen
  • Gemeinsames Volume zwischen history-v1 und filestore
  • Problem mit Unterverzeichnissen

Sandbox-Kompilierung aktivieren

Hier müssen wir die Sandbox-Kompilierung genauso aktivieren wie in Overleaf CE. Wir müssen lediglich auf den Benutzer achten. Hier setzen wir ihn auf root. In der Produktionsumgebung verwenden wir www-data als gemeinsamen Benutzer zwischen dem Overleaf-Container und dem TeX-Kompilierungscontainer. In der Entwicklungsumgebung ist jedoch node der Standardbenutzer im Container, und es gibt keinen www-data-Benutzer, an den man sich anhängen könnte. Deshalb verwenden wir als Workaround einfach root.
Bitte verwenden Sie kein selbst gebautes Image, da sonst eine Reihe von Fehlern auftreten kann.

Dateiberechtigungen korrigieren

LaTeX läuft in den Geschwistercontainern als der Benutzer, der in der Umgebungsvariable TEXLIVE_IMAGE_USER angegeben ist. Im obigen Beispiel ist dies root mit der uid 0. Das führt zu einem Problem mit den oben genannten Berechtigungen, da der Benutzer root keine Schreibrechte für Unterordner von compiles hat. Eine schnelle Lösung besteht darin, der Gruppe root die Eigentümerschaft sowie Lese- und Schreibrechte für compiles zu geben und setgid zu setzen, damit neue Unterordner diese Eigentümerschaft ebenfalls erben:
bash
Eine ausführliche Dokumentation finden Sie in services/clsi/README.md.

Gemeinsames Volume zwischen history-v1 und filestore

Standardmäßig fungiert filestore als Brücke zwischen S3 und anderen Diensten in Overleaf. In Overleaf CE oder Server Pro werden jedoch standardmäßig alle Dateien lokal gespeichert. Daher hat Overleaf eine recht trickreiche Methode eingeführt.
server-ce/config/settings.js
Gleichzeitig wird data/history auch vom History-Dienst verwendet. Auf diese Weise können verschiedene Microservices dieselben Daten gemeinsam nutzen. Sie müssen das Volume history-v1-buckets zu Ihrem filestore-Dienst in der Entwicklungsumgebung hinzufügen. Andernfalls kann clsi keine Blob-Dateien vom filestore-Dienst abrufen.
develop/docker-compose.yml
Außerdem müssen Sie die BUCKET-Namen in den Einstellungen von dev.env hinzufügen:
develop/dev.env

Unterverzeichnisse verwenden

Filestore verwendet standardmäßig useSubdirectories mit dem Wert true, in der Entwicklung flacht history v1 jedoch alle Daten ab. Das führt zu Konflikten. Um dies zu beheben, müssen Sie Folgendes hinzufügen:
develop/dev.env
In history v1 werden alle project_blobs-Dateien ursprünglich so gespeichert:
Sie müssen useSubdirectories auf true setzen, um in den Unterverzeichnismodus zu wechseln. Dann wird das ursprüngliche _ im Blob durch / ersetzt.
Zuletzt geändert am 5. Oktober 2026