- Проблема с правами доступа к файлам
- Общий том для 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-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 будет заменён на /.
