- File Permission Problem
- Volume Share Between history-v1 and filestore
- Subdirectories Problem
Enable Sandbox Compiles
Here, we just need to enable Sandbox Compiles like what we do in overleaf ce. However, we only need to mind the user. Here we set it to root. In production environment, we use www-data as a shared user between overleaf container and tex compile container. However, in dev env, node is the default user in container. And there’s no www-data user to hook this. So we just use root as a workaround.Fix File Permissions
LaTeX runs in the sibling containers as the user specified in theTEXLIVE_IMAGE_USER environment variable. In the example above this is set to root, which has uid 0. This creates a problem with the above permissions, as the root user does not have permission to write to subfolders of compiles.
A quick fix is to give the root group ownership and read write permissions to compiles, with setgid set so that new subfolders also inherit this ownership:
bash
services/clsi/README.md.
Volume Share Between history-v1 and filestore
By default, filestore act as a bridge between s3 and other services in overleaf. However, in overleaf ce or server pro, all files are stored locally by default. So, overleaf introduced a very tricky method.server-ce/config/settings.js
data/history is also used by history service. In this way, they can share the same data between different micro service. You need to add this volume history-v1-buckets to your filestore service in develop. Otherwise, clsi will not be able to pull blob files from filestore service.
develop/docker-compose.yml
dev.env settings:
develop/dev.env
Use Subdirectories
Filestore use useSubdirectories as true by default, however, in development, history v1 will flatten all the data. This cause some conflict. To fix this, you need add the following:develop/dev.env
project_blobs files are stored like this originally:
true to change it use subdir mode. Now, orignal _ in blob will be substitute as / .
