- Problem z uprawnieniami do plików
- Współdzielenie wolumenu między history-v1 a filestore
- Problem z podkatalogami
Włączanie Sandbox Compiles
Wystarczy włączyć Sandbox Compiles tak samo jak w Overleaf CE. Trzeba jednak zwrócić uwagę na użytkownika — tutaj ustawiamy go na root. W środowisku produkcyjnym używamy www-data jako wspólnego użytkownika kontenera Overleaf i kontenera kompilacji TeX. Jednak w środowisku deweloperskim domyślnym użytkownikiem w kontenerze jest node i nie ma użytkownika www-data, którego można by do tego wykorzystać. Dlatego jako obejście używamy po prostu root.Naprawa uprawnień do plików
LaTeX działa w kontenerach równoległych (sibling containers) jako użytkownik określony w zmiennej środowiskowejTEXLIVE_IMAGE_USER. W powyższym przykładzie ustawiono ją na root, który ma uid 0. Powoduje to problem z powyższymi uprawnieniami, ponieważ użytkownik root nie ma uprawnień do zapisu w podfolderach compiles.
Szybkim rozwiązaniem jest nadanie grupie root własności oraz uprawnień do odczytu i zapisu katalogu compiles, z ustawionym bitem setgid, aby nowe podfoldery również dziedziczyły tę własność:
bash
services/clsi/README.md.
Współdzielenie wolumenu między history-v1 a filestore
Domyślnie filestore pełni rolę pomostu między S3 a innymi usługami w Overleaf. Jednak w Overleaf CE lub Server Pro wszystkie pliki są domyślnie przechowywane lokalnie. Dlatego Overleaf wprowadził dość nietypowe rozwiązanie.server-ce/config/settings.js
data/history jest również używany przez usługę history. Dzięki temu różne mikrousługi mogą współdzielić te same dane. Musisz dodać wolumen history-v1-buckets do usługi filestore w środowisku deweloperskim. W przeciwnym razie clsi nie będzie w stanie pobierać plików blob z usługi filestore.
develop/docker-compose.yml
dev.env:
develop/dev.env
Używanie podkatalogów
Filestore domyślnie ma ustawione useSubdirectories na true, jednak w środowisku deweloperskim history v1 spłaszcza wszystkie dane. Powoduje to pewne konflikty. Aby to naprawić, dodaj następujące ustawienia:develop/dev.env
project_blobs są pierwotnie przechowywane w następujący sposób:
true, aby przełączyć się w tryb podkatalogów. Wówczas pierwotne znaki _ w nazwach blobów zostaną zastąpione przez / .
