Skip to main content
Geliştirme için sandbox compile kurmak istiyorsanız, geliştirme ve üretim ortamları arasında küçük bir fark vardır. Dikkat etmeniz gereken 3 şey var:
  • Dosya İzinleri Sorunu
  • history-v1 ile filestore Arasında Volume Paylaşımı
  • Alt Dizinler Sorunu

Sandbox Compiles’ı Etkinleştirme

Burada, Sandbox Compiles’ı Overleaf CE’de yaptığımız gibi etkinleştirmemiz yeterlidir. Ancak yalnızca kullanıcıya dikkat etmemiz gerekir. Burada onu root olarak ayarlıyoruz. Üretim ortamında, Overleaf konteyneri ile TeX derleme konteyneri arasında ortak kullanıcı olarak www-data kullanıyoruz. Ancak geliştirme ortamında konteynerdeki varsayılan kullanıcı node’dur ve bunu bağlayacak bir www-data kullanıcısı yoktur. Bu yüzden geçici çözüm olarak root kullanıyoruz.
Lütfen kendi oluşturduğunuz imajı kullanmayın, bir dizi hatayla karşılaşabilirsiniz.

Dosya İzinlerini Düzeltme

LaTeX, kardeş konteynerlerde TEXLIVE_IMAGE_USER ortam değişkeninde belirtilen kullanıcı olarak çalışır. Yukarıdaki örnekte bu, uid değeri 0 olan root olarak ayarlanmıştır. root kullanıcısının compiles alt klasörlerine yazma izni olmadığı için bu, yukarıdaki izinlerle bir sorun yaratır. Hızlı bir çözüm, compiles için grup sahipliğini root grubuna vermek ve okuma-yazma izinleri tanımak, ayrıca yeni alt klasörlerin de bu sahipliği devralması için setgid ayarlamaktır:
bash
Ayrıntılı dokümantasyon için services/clsi/README.md dosyasına bakabilirsiniz.

history-v1 ile filestore Arasında Volume Paylaşımı

Varsayılan olarak filestore, Overleaf’te s3 ile diğer servisler arasında bir köprü görevi görür. Ancak Overleaf CE veya Server Pro’da tüm dosyalar varsayılan olarak yerel olarak depolanır. Bu nedenle Overleaf oldukça dolambaçlı bir yöntem getirmiştir.
server-ce/config/settings.js
Bu arada data/history de history servisi tarafından kullanılır. Bu şekilde farklı mikro servisler aynı veriyi paylaşabilir. Geliştirme ortamında filestore servisinize history-v1-buckets volume’unu eklemeniz gerekir. Aksi takdirde clsi, filestore servisinden blob dosyalarını çekemez.
develop/docker-compose.yml
Ayrıca dev.env ayarlarına BUCKET adını eklemeniz gerekir:
develop/dev.env

Alt Dizinleri Kullanma

Filestore varsayılan olarak useSubdirectories değerini true olarak kullanır; ancak geliştirme ortamında history v1 tüm verileri düzleştirir. Bu da bazı çakışmalara yol açar. Bunu düzeltmek için aşağıdakileri eklemeniz gerekir:
develop/dev.env
history v1’de tüm project_blobs dosyaları başlangıçta şu şekilde depolanır:
Alt dizin moduna geçmek için useSubdirectories değerini true olarak ayarlamanız gerekir. Artık blob içindeki orijinal _ karakteri / ile değiştirilecektir.
Son değiştirilme tarihi 5 Ekim 2026