> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/texlive/ar/texlive-fy-docker.md).

# TeXLive في Docker

### دوكر

يوفّر Docker طريقة خفيفة الوزن وقابلة للنقل لتغليف التطبيقات وتشغيلها داخل حاويات معزولة. ومن خلال تجميع التطبيق مع جميع الاعتماديات المطلوبة، تضمن الحاوية سلوكًا متسقًا عبر مختلف الأجهزة، من الحواسيب المحمولة إلى خوادم الإنتاج.

يُعد TeX Live قويًا لكنه كبير وحساسًا للاختلافات على مستوى النظام. إن تغليف TeX Live داخل صورة Docker يجعل سلسلة أدوات LaTeX قابلة للتنبؤ وإعادة الإنتاج وسهلة التوزيع.

ومع ذلك، تعتمد بعض حزم TeX Live على الوصول إلى الصدفة. ولأسباب أمنية، ينبغي أن تعمل الحاوية في بيئة مقيّدة تمنع المستخدمين من تنفيذ أوامر صدفة عشوائية (على سبيل المثال عبر `\write18` أو shell escape). يعزل هذا النظام ويحميه ويمنع الوصول غير المقصود إلى نظام الملفات أو الأدوات الأساسية للحاوية مثل `bash`.

### TeXLive الإصدار الكامل

[TeXLive-Full@ayaka-notes](https://github.com/ayaka-notes/texlive-full/) هو إصدار كامل الميزات من **صورة Docker لـ TeXLive** مصممة خصيصًا لـ Overleaf Server Pro وOverleaf Pro، وكذلك لبيئات تجميع LaTeX المستقلة مثل بيئات CI أو خطوط المعالجة.

تهدف هذه الصورة إلى توفير توزيع شبه كامل من TeXLive مع الخطوط والأدوات الشائعة مثبتة مسبقًا، وذلك لتقليل أخطاء التجميع الناتجة عن الحزم أو الخطوط المفقودة.

الميزات:

* 🚀 دعم معماريات الخوادم x86\_64 وarm64
* 📦 تثبيت TeXLive كامل ومحسّن
* 🧩 خطوط وأدوات شائعة مثبتة مسبقًا
* 🐳 جاهز للاستخدام مع Docker وDocker Compose
* 🧪 تم اختباره مع Overleaf Server Pro / Overleaf Pro
* 🔄 يتم تحديثه بانتظام بأحدث إصدارات TeXLive
* 🏷 وسوم متعددة لإصدارات TeXLive (2020 – الأحدث)
* 🧑‍🔬 دعم Knitr لكود R في مستندات LaTeX

### استخدام Overleaf Pro

[TeXLive-Full@ayaka-notes](https://github.com/ayaka-notes/texlive-full/) الدعم **overleaf pro**، يمكنك استخدام متغيرات البيئة التالية لـ `config/variables.env` الملف إذا كنت [مستخدم toolkit](https://github.com/overleaf/toolkit).

على سبيل المثال:

{% code title="config/variables.env" overflow="wrap" %}

```dotenv
ALL_TEX_LIVE_DOCKER_IMAGES=ghcr.io/ayaka-notes/texlive-full:2025.1, ghcr.io/ayaka-notes/texlive-full:2024.1
ALL_TEX_LIVE_DOCKER_IMAGE_NAMES=Texlive 2025, Texlive 2024
TEX_LIVE_DOCKER_IMAGE=ghcr.io/ayaka-notes/texlive-full:2025.1
```

{% endcode %}

### إصدار TeXLive

بفضل GitHub Action، يمكننا بناء جميع صور tex بالتوازي، والتي تشمل:

* `ghcr.io/ayaka-notes/texlive-full:2026.1` (وأيضًا `الأحدث` وسم)
* `ghcr.io/ayaka-notes/texlive-full:2025.1`
* `ghcr.io/ayaka-notes/texlive-full:2024.1`
* `ghcr.io/ayaka-notes/texlive-full:2023.1`
* `ghcr.io/ayaka-notes/texlive-full:2022.1`
* `ghcr.io/ayaka-notes/texlive-full:2021.1`
* `ghcr.io/ayaka-notes/texlive-full:2020.1`
* `ghcr.io/ayaka-notes/texlive-full:base`

نستخدم أرشيف النسخ المتطابقة من [معلومات texlive](https://texlive.info/tlnet-archive/)، والذي يتضمن تقريبًا جميع صور texlive الممتدة من 1996 إلى 2026. وبفضل Dockerfile الخاص بـ Overleaf، يمكننا بناء هذا المشروع بشكل أسرع.

> لماذا لا يتم دعم texlive 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

تتضمن صورة Docker الخطوط التالية.

* [خطوط Google](https://fonts.google.com/)
* [Microsoft msttcorefonts](https://packages.ubuntu.com/jammy/ttf-mscorefonts-installer)
* [الخطوط المدعومة من Overleaf](https://www.overleaf.com/learn/latex/Questions/Which_OTF_or_TTF_fonts_are_supported_via_fontspec%3F)

{% hint style="warning" %}
يرجى التأكد مما إذا كانت الخطوط ذات الصلة يمكن استخدامها تجاريًا. نحن **غير مسؤولين** عن أي مشكلات قانونية تنشأ عن استخدامك غير الصحيح للخطوط. بمجرد تنزيلك للصورة، فإنك توافق على ذلك تلقائيًا.
{% endhint %}

### الترخيص

MIT

### المشكلات

<details>

<summary>المشكلة 01: مشكلة فقدان ذاكرة التخزين المؤقت للخطوط</summary>

عندما يقوم Overleaf بتجميع مشروع LaTeX، إذا حدث فقدان في خط، **قد تلاحظ أن عملية التجميع تستغرق وقتًا طويلًا**، وذلك لأن TeXLive سيحاول عند فقدان خطٍ ما أن **إعادة بناء ذاكرة التخزين المؤقت للخطوط بالكامل**. وهذه عملية تستغرق وقتًا طويلاً.

في صورتنا، قمنا مسبقًا ببناء ذاكرة التخزين المؤقت للخطوط، ونصلح هذه المشكلة عبر [هذا الالتزام](https://github.com/ayaka-notes/texlive-full/commit/0cb66b0dc8b82be628cf6999cfd659d9784e132f)

</details>

<details>

<summary>المشكلة 02: بطء شديد في مزامنة Tex</summary>

عند استخدامك لهذه الصورة في sharelatex، قد تلاحظ أن مزامنة tex بطيئة للغاية.

انظر: <https://github.com/overleaf/overleaf/issues/1150>، ما عليك سوى تعطيل HTTP 2.0.

</details>

<details>

<summary>المشكلة 03: خطأ إعادة التجميع مع صورة Texlive الرسمية</summary>

إذا استخدمت الصورة الرسمية لـ texlive على Docker Hub `texlive/texlive`، فقد تلاحظ أنه عند إعادة تجميع مشروع، سيبلغ عن خطأ. ومع ذلك، في صورتنا تم إصلاح هذه المشكلة. وذلك لأننا نستخدم أحدث صورة أساسية من Ubuntu ونثبّت جميع الاعتماديات من المستودع الرسمي لـ Ubuntu.

</details>

### تذكير تقني آخر

أثناء بناء صورة texlive (ما قبل 2019)، قد تحتاج إلى الانتباه إلى المشكلات التالية:

* فقط `http`/`ftp` مدعوم قبل texlive 2017، لذا لا يمكنك استخدام `https` للتنزيل، ما لم تعدّل `peal` البرنامج النصي.
* قبل 2015، لا يتم توفير سوى ملف sha256. لذا لا يمكنك استخدام sha512 للتحقق.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/texlive/ar/texlive-fy-docker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
