Skip to main content
Если вы хотите настроить изолированную компиляцию (Sandbox Compiles) для среды разработки, учтите, что она немного отличается от рабочей среды. Нужно обратить внимание на 3 момента:
  • Проблема с правами доступа к файлам
  • Общий том для 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
Также необходимо добавить имена BUCKET в настройки dev.env:
develop/dev.env

Использование подкаталогов

Filestore по умолчанию использует useSubdirectories со значением true, однако в среде разработки history v1 хранит все данные в плоском виде. Это вызывает конфликт. Чтобы исправить это, добавьте следующее:
develop/dev.env
Изначально в history v1 все файлы project_blobs хранятся следующим образом:
Необходимо установить useSubdirectories в true, чтобы переключиться на режим подкаталогов. Теперь исходный символ _ в имени blob будет заменён на /.
Последнее изменение 5 октября 2026 г.