Docker
يوفّر Docker طريقة خفيفة وقابلة للنقل لتغليف التطبيقات وتشغيلها في حاويات معزولة. ومن خلال تجميع التطبيق مع جميع التبعيات المطلوبة، تضمن الحاوية سلوكًا متّسقًا عبر الأجهزة المختلفة، من الحواسيب المحمولة إلى خوادم الإنتاج. TeX Live قوية لكنها كبيرة الحجم وحساسة للاختلافات على مستوى النظام. ويجعل تغليف TeX Live داخل صورة Docker سلسلة أدوات LaTeX قابلة للتنبؤ وقابلة لإعادة الإنتاج وسهلة التوزيع. ومع ذلك، تعتمد بعض حزم TeX Live على الوصول إلى الصدفة (shell). ولأسباب أمنية، يجب أن تعمل الحاوية في بيئة مقيّدة تمنع المستخدمين من تنفيذ أوامر صدفة عشوائية (على سبيل المثال عبر\write18 أو shell escape). ويحمي هذا العزل النظام المضيف ويتجنب الوصول غير المقصود إلى نظام الملفات الأساسي للحاوية أو إلى أدوات مثل bash.
إصدار TeXLive الكامل
TeXLive-Full@ayaka-notes هي صورة TeXLive Docker كاملة الميزات، مصممة للترجمة المعزولة لـ LaTeX في Ayakaleaf Pro أو Overleaf CEP أو بيئات ترجمة LaTeX المستقلة. تهدف هذه الصورة إلى توفير توزيعة TeXLive شبه كاملة مع خطوط وأدوات شائعة مثبّتة مسبقًا، وذلك لتقليل حالات فشل الترجمة الناتجة عن الحزم أو الخطوط المفقودة. ملاحظات: صورة Docker هذه لا تحتوي على أي مكوّن من sharelatex/overleaf. وهي تُستخدم للترجمة في Overleaf/Overleaf Pro.الميزات:
- 🚀 تدعم معماريتي الخوادم x86_64 و arm64
- 📦 تثبيت TeXLive كامل ومحسّن
- 🧩 خطوط وأدوات شائعة مثبّتة مسبقًا
- 🐳 جاهزة للاستخدام مع Docker و Docker Compose
- 🧪 مُختبرة مع Overleaf Server Pro / Overleaf Pro
- 🔄 تُحدَّث بانتظام مع أحدث إصدارات TeXLive
- 🏷 وسوم متعددة لإصدارات TeXLive (من 2020 حتى الأحدث)
- 🧑🔬 دعم Knitr لشيفرة R في مستندات LaTeX
الاستخدام مع Ayakaleaf Pro
صُمّمت TeX Live Full من Ayaka-notes خصيصًا لـ ayakaleaf-pro، ويمكنك إضافة متغيرات البيئة التالية إلى الملفconfig/variables.env إذا كنت من مستخدمي toolkit.
على سبيل المثال:
config/variables.env
إصدار TeX Live
بفضل GitHub Action، يمكننا بناء جميع صور tex بالتوازي، وتشمل:ghcr.io/ayaka-notes/texlive-full:2026.1(وأيضًا الوسمlatest)ghcr.io/ayaka-notes/texlive-full:2025.1ghcr.io/ayaka-notes/texlive-full:2024.1ghcr.io/ayaka-notes/texlive-full:2023.1ghcr.io/ayaka-notes/texlive-full:2022.1ghcr.io/ayaka-notes/texlive-full:2021.1ghcr.io/ayaka-notes/texlive-full:2020.1ghcr.io/ayaka-notes/texlive-full:base
لماذا لا يتم دعم TeX Live 2019 والإصدارات الأقدم؟ إن صيانة هذه الصور القديمة صعبة للغاية. كما أن موقع texlive.info لا يوفّر معلومات عن إصدارات TeX Live الصادرة قبل 2019، لذا لا يمكننا بناء صور لتلك الإصدارات. إذا كنت بحاجة إلى إصدار قديم محدد، فيُرجى فتح issue وإعلامنا بذلك.
المكوّنات المضمّنة
الحزم التالية مضمّنة في صورة docker.- جميع حزم TeXLive (لتلك السنة)
- حزم R (المختارة فقط)
- fontconfig inkscape pandoc python3-pygments wget python3
- gnupg gnuplot perl-modules perl ca-certificates
- ghostscript qpdf r-base-core tar
الترخيص
MITالمشكلات
المشكلة 01: مشكلة عدم العثور على الخط في الذاكرة المؤقتة
المشكلة 01: مشكلة عدم العثور على الخط في الذاكرة المؤقتة
عندما يترجم overleaf مشروع latex، إذا حدث عدم عثور على خط، فقد تجد أن عملية الترجمة تستغرق وقتًا طويلًا، وذلك لأنه عند فقدان خط، ستحاول texlive إعادة بناء ذاكرة الخطوط المؤقتة بالكامل. وهذه عملية تستهلك وقتًا طويلًا.في صورتنا، قمنا ببناء ذاكرة الخطوط المؤقتة مسبقًا، وأصلحنا هذه المشكلة عبر هذا الـ commit
المشكلة 02: بطء شديد في Sync Tex
المشكلة 02: بطء شديد في Sync Tex
عند استخدام هذه الصورة في sharelatex، قد تجد أن sync tex بطيء للغاية.راجع: https://github.com/overleaf/overleaf/issues/1150، ويكفي تعطيل http 2.0.
المشكلة 03: خطأ عند إعادة الترجمة مع صورة Texlive الرسمية
المشكلة 03: خطأ عند إعادة الترجمة مع صورة Texlive الرسمية
إذا كنت تستخدم صورة texlive الرسمية على docker hub
texlive/texlive، فقد تجد أنه عند إعادة ترجمة مشروع، سيتم الإبلاغ عن خطأ. أما في صورتنا، فقد تم إصلاح هذه المشكلة، لأننا نستخدم أحدث صورة أساسية لـ ubuntu ونثبّت جميع التبعيات من مستودع ubuntu الرسمي.تذكيرات تقنية أخرى
عند بناء صور texlive (قبل 2019)، قد تحتاج إلى الانتباه إلى المشكلات التالية:- قبل texlive 2017، كان يُدعم
http/ftpفقط، لذا لا يمكنك استخدامhttpsللتنزيل، إلا إذا عدّلت سكربتpeal. - قبل 2015، كان يتم توفير ملف sha256 فقط. لذا لا يمكنك استخدام sha512 للتحقق.

