- Проблема з правами доступу до файлів
- Спільний том для history-v1 та filestore
- Проблема з підкаталогами
Увімкнення ізольованої компіляції
Тут потрібно просто увімкнути Sandbox Compiles так само, як і в Overleaf CE. Однак слід звернути увагу на користувача. Тут ми встановлюємо його як root. У продакшн-середовищі ми використовуємо www-data як спільного користувача для контейнера Overleaf і контейнера компіляції TeX. Проте в середовищі розробки користувачем за замовчуванням у контейнері є node, і користувача www-data, до якого можна було б прив’язатися, немає. Тож як обхідне рішення ми просто використовуємо root.Виправлення прав доступу до файлів
LaTeX виконується в сусідніх контейнерах від імені користувача, вказаного у змінній середовищаTEXLIVE_IMAGE_USER. У прикладі вище це root з uid 0. Це створює проблему з наведеними вище правами доступу, оскільки користувач root не має дозволу на запис у підкаталоги compiles.
Швидке виправлення — надати групі root право власності та права на читання й запис для compiles, встановивши 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 не зможе отримувати blob-файли із сервісу filestore.
develop/docker-compose.yml
dev.env:
develop/dev.env
Використання підкаталогів
Filestore за замовчуванням використовує useSubdirectories зі значенням true, однак у середовищі розробки history v1 зберігає всі дані в пласкій структурі. Це спричиняє певний конфлікт. Щоб це виправити, додайте таке:develop/dev.env
project_blobs початково зберігаються так:
true, щоб перейти в режим підкаталогів. Тепер початковий символ _ у blob буде замінено на / .
