- Problema de permisos de archivos
- Volumen compartido entre history-v1 y filestore
- Problema de subdirectorios
Habilitar compilaciones en sandbox
Aquí solo tenemos que habilitar las compilaciones en sandbox igual que en Overleaf CE. Sin embargo, debemos prestar atención al usuario. En este caso lo establecemos en root. En el entorno de producción usamos www-data como usuario compartido entre el contenedor de Overleaf y el contenedor de compilación de TeX. Sin embargo, en el entorno de desarrollo, node es el usuario predeterminado del contenedor y no existe ningún usuario www-data con el que enlazarlo. Por eso usamos root como solución alternativa.Corregir los permisos de archivos
LaTeX se ejecuta en los contenedores hermanos como el usuario especificado en la variable de entornoTEXLIVE_IMAGE_USER. En el ejemplo anterior está establecida en root, que tiene el uid 0. Esto genera un problema con los permisos anteriores, ya que el usuario root no tiene permiso para escribir en las subcarpetas de compiles.
Una solución rápida es dar al grupo root la propiedad y permisos de lectura y escritura sobre compiles, con setgid establecido para que las nuevas subcarpetas también hereden esta propiedad:
bash
services/clsi/README.md.
Volumen compartido entre history-v1 y filestore
De forma predeterminada, filestore actúa como puente entre S3 y los demás servicios de Overleaf. Sin embargo, en Overleaf CE o Server Pro, todos los archivos se almacenan localmente de forma predeterminada. Por ello, Overleaf introdujo un método muy ingenioso.server-ce/config/settings.js
data/history también lo usa el servicio de historial. De esta forma, pueden compartir los mismos datos entre distintos microservicios. Debes añadir este volumen history-v1-buckets a tu servicio filestore en desarrollo. De lo contrario, clsi no podrá obtener los archivos blob del servicio filestore.
develop/docker-compose.yml
dev.env:
develop/dev.env
Usar subdirectorios
Filestore usa useSubdirectories con valor true de forma predeterminada; sin embargo, en desarrollo, history v1 aplana todos los datos. Esto provoca algunos conflictos. Para solucionarlo, debes añadir lo siguiente:develop/dev.env
project_blobs se almacenan originalmente así:
true para cambiar al modo de subdirectorios. Ahora, el _ original en el blob se sustituirá por /.
