- Problema de permissões de arquivos
- Compartilhamento de volume entre history-v1 e filestore
- Problema de subdiretórios
Habilitar o Sandbox Compiles
Aqui, basta habilitar o Sandbox Compiles da mesma forma que fazemos no Overleaf CE. No entanto, precisamos prestar atenção ao usuário. Aqui, nós o definimos como root. No ambiente de produção, usamos www-data como usuário compartilhado entre o contêiner do Overleaf e o contêiner de compilação TeX. No entanto, no ambiente de desenvolvimento, node é o usuário padrão do contêiner, e não há um usuário www-data para fazer essa ligação. Por isso, usamos root como solução alternativa.Corrigir permissões de arquivos
O LaTeX é executado nos contêineres irmãos com o usuário especificado na variável de ambienteTEXLIVE_IMAGE_USER. No exemplo acima, ela está definida como root, que tem uid 0. Isso cria um problema com as permissões acima, pois o usuário root não tem permissão para gravar nas subpastas de compiles.
Uma solução rápida é dar ao grupo root a propriedade e permissões de leitura e gravação em compiles, com setgid definido para que novas subpastas também herdem essa propriedade:
bash
services/clsi/README.md.
Compartilhamento de volume entre history-v1 e filestore
Por padrão, o filestore atua como uma ponte entre o S3 e os outros serviços do Overleaf. No entanto, no Overleaf CE ou no Server Pro, todos os arquivos são armazenados localmente por padrão. Por isso, o Overleaf introduziu um método bastante engenhoso.server-ce/config/settings.js
data/history também é usado pelo serviço de histórico. Dessa forma, eles podem compartilhar os mesmos dados entre diferentes microsserviços. Você precisa adicionar o volume history-v1-buckets ao serviço filestore no ambiente de desenvolvimento. Caso contrário, o clsi não conseguirá obter os arquivos blob do serviço filestore.
develop/docker-compose.yml
dev.env:
develop/dev.env
Usar subdiretórios
O filestore usa useSubdirectories como true por padrão; no entanto, em desenvolvimento, o history v1 achata todos os dados. Isso causa alguns conflitos. Para corrigir isso, você precisa adicionar o seguinte:develop/dev.env
project_blobs são originalmente armazenados assim:
true para mudar para o modo de subdiretórios. Agora, o _ original no blob será substituído por / .
