- Masalah izin file
- Berbagi volume antara history-v1 dan filestore
- Masalah subdirektori
Mengaktifkan Sandbox Compiles
Di sini, kita cukup mengaktifkan Sandbox Compiles seperti yang kita lakukan di Overleaf CE. Namun, kita perlu memperhatikan penggunanya. Di sini kita mengaturnya ke root. Di lingkungan produksi, kami menggunakan www-data sebagai pengguna bersama antara kontainer Overleaf dan kontainer kompilasi TeX. Namun, di lingkungan pengembangan, node adalah pengguna default di dalam kontainer, dan tidak ada pengguna www-data yang dapat digunakan. Jadi, kami menggunakan root sebagai solusi sementara.Memperbaiki Izin File
LaTeX berjalan di kontainer saudara (sibling container) sebagai pengguna yang ditentukan dalam variabel lingkunganTEXLIVE_IMAGE_USER. Pada contoh di atas, nilainya diatur ke root, yang memiliki uid 0. Ini menimbulkan masalah dengan izin di atas, karena pengguna root tidak memiliki izin untuk menulis ke subfolder compiles.
Perbaikan cepatnya adalah memberikan kepemilikan grup root serta izin baca-tulis pada compiles, dengan setgid diaktifkan agar subfolder baru juga mewarisi kepemilikan ini:
bash
services/clsi/README.md.
Berbagi Volume antara history-v1 dan filestore
Secara default, filestore berfungsi sebagai jembatan antara S3 dan layanan lain di Overleaf. Namun, di Overleaf CE atau Server Pro, semua file disimpan secara lokal secara default. Karena itu, Overleaf memperkenalkan metode yang cukup rumit.server-ce/config/settings.js
data/history juga digunakan oleh layanan history. Dengan cara ini, keduanya dapat berbagi data yang sama di antara microservice yang berbeda. Anda perlu menambahkan volume history-v1-buckets ini ke layanan filestore di lingkungan pengembangan. Jika tidak, clsi tidak akan dapat mengambil file blob dari layanan filestore.
develop/docker-compose.yml
dev.env:
develop/dev.env
Menggunakan Subdirektori
Filestore menggunakan useSubdirectories bernilai true secara default. Namun, di lingkungan pengembangan, history v1 akan meratakan (flatten) semua data. Hal ini menimbulkan konflik. Untuk memperbaikinya, Anda perlu menambahkan baris berikut:develop/dev.env
project_blobs awalnya disimpan seperti ini:
true untuk mengubahnya ke mode subdirektori. Sekarang, karakter _ asli dalam blob akan diganti dengan / .
