يُبلغ WSL أو Docker بأن المحاكاة الافتراضية غير متاحة
تحتاج الواجهة الخلفية WSL 2 إلى المحاكاة الافتراضية للعتاد وإلى Virtual Machine Platform، وليس إلى ميزة Hyper-V الكاملة التي تستخدمها الواجهة الخلفية البديلة Hyper-V في Docker. ابدأ بعمليات التحقق هذه:- في Windows، ضمن Task Manager → Performance → CPU، تحقّق من Virtualization: Enabled. إذا كانت معطّلة، ففعّل Intel VT-x/VMX أو AMD-V/SVM في BIOS/UEFI باتباع تعليمات الشركة المصنّعة لجهازك.
- في PowerShell كمسؤول، تحقّق من ميزات Windows:
- إذا كانت الميزات وإعداد BIOS مفعّلة لكن الخطأ
0x80370102ما زال قائمًا، فتحقّق في PowerShell كمسؤول:
Off، فاستعد تشغيل hypervisor عند الإقلاع وأعد تشغيل Windows:
- إذا كان Windows نفسه يعمل داخل آلة افتراضية، فيجب أن يوفّر الـ hypervisor الخارجي المحاكاة الافتراضية المتداخلة (nested virtualization). لا يمكن لتفعيل خانة اختيار في Windows وحده أن يوفّر ميزات المعالج الافتراضي المفقودة.
يحتاج Docker Desktop إلى تحديث أو لا يستطيع سحب الصور
بالنسبة إلى WSL update required، شغّلwsl --update في PowerShell، وأعد تشغيل Windows إذا طُلب ذلك، ثم أعد فتح Docker Desktop وUbuntu. إذا ظل صف Ubuntu يعرض WSL 1، فحوّل التوزيعة كما هو موضح في الخطوة 0.
بالنسبة إلى مهلات السجل (registry) أو أخطاء DNS أو الوكيل أو الشهادات، تحقّق من السجل الفاشل بالضبط في مخرجات السحب. اضبط الوكيل والثقة بالشهادات في Windows/Docker Desktop إذا كانت شبكتك تحتاج إليها؛ ولا تعطّل التحقق من TLS. إن نجاح استنساخ GitHub لا يثبت أن Docker يستطيع الوصول إلى ghcr.io أو Docker Hub. راجع إعدادات الوكيل في Docker Desktop. بمجرد أن يعمل الاتصال، أعد تشغيل bin/up -d؛ ويجب أن تبقى أسماء الصور المضبوطة متسقة.
Docker غير متاح في Ubuntu
إذا لم يُعثر علىdocker، فافتح Docker Desktop في Windows، وفعّل Ubuntu ضمن Settings → Resources → WSL Integration، وطبّق التغيير وأعد فتح Ubuntu. تحقّق من اسم التوزيعة ووضع WSL باستخدام wsl --list --verbose في PowerShell. يجب أن تستخدم WSL 2.
إذا كان العميل موجودًا لكنه لا يستطيع الوصول إلى الـ daemon، فتحقّق من أن المحرك انتهى من بدء التشغيل. افحص docker context ls وأي إعدادات مخصصة لـ DOCKER_HOST/DOCKER_CONTEXT؛ فالمحرك البعيد أو socket قديم لـ Engine في Ubuntu ليس إعداد Desktop المحلي الذي يتناوله هذا الدليل. لا تُصلح هذا بتثبيت daemon آخر أو بجعل الـ socket قابلًا للكتابة من الجميع.
يفشل MongoDB في البدء
يهيّئbin/up مجموعة النسخ المتماثلة في MongoDB قبل تشغيل التطبيق. إذا توقف عند Waiting for Mongo...، فافحص قاعدة البيانات في طرفية Ubuntu ثانية:
mongo غير موجودة وتعرض المخرجات خطأ في سحب الصورة، فعالج الوصول إلى السجل أو مساحة القرص أولًا؛ إذ لم تصل بعد إلى بدء تشغيل قاعدة البيانات. بمجرد إصلاح السبب، أعد تشغيل bin/up -d.
عندما يعمل MongoDB، تحقّق من مجموعة النسخ المتماثلة:
1. يجري bin/up -d الإعداد الأولي لمجموعة النسخ المتماثلة؛ أما تشغيل خدمات Compose مباشرةً في نشر جديد فيتخطى خطوة Toolkit هذه.
لا تطبّق حلًا بديلًا لنواة MongoDB إلا إذا كان محرك Docker لديك يستخدم نواة متأثرة. إذا أشارت سجلات MongoDB إلى مشكلة في النواة، فقارن النواة الفعلية للمحرك بـملاحظات الإنتاج في MongoDB وحدّث WSL/Docker حسب الاقتضاء. لا تمحُ data/mongo أبدًا كحل عام لمشكلات بدء التشغيل.
لا يستطيع Windows فتح localhost
اختبر أولًا في Ubuntu:OVERLEAF_PORT وOVERLEAF_SITE_URL وعنوان URL في المتصفح، يليها bin/up -d.
تفشل Sandboxed Compiles
تحقّق من الأجزاء الثلاثة كلها: أن الصورة موجودة في محرك Docker هذا، وأن التطبيق يستطيع استخدام socket المحرك، وأن الحاوية الشقيقة تستطيع تركيب مجلد الترجمة:config/variables.env. تنتمي SERVER_PRO=true وSIBLING_CONTAINERS_ENABLED=true وDOCKER_SOCKET_PATH=/var/run/docker.sock إلى config/overleaf.rc. بعد التعديلات، شغّل bin/up -d؛ فـ bin/start وحده لا يحدّث بيئة الحاوية.
يعني الخطأ No such image أن Docker لا يستطيع العثور على الصورة الدقيقة التي يطلبها ذلك المشروع. أبقِ TEX_LIVE_DOCKER_IMAGE وALL_TEX_LIVE_DOCKER_IMAGES متسقين، واسحب الصورة في المحرك نفسه، وتحقّق من اختيار TeX Live في المشروع. قد تحتفظ المشاريع الموجودة باختيار صورة أقدم.
في حال خطأ في التركيب أو مجلد /compile فارغ، تأكّد من أن Toolkit موجود ضمن المجلد الرئيسي لـ Ubuntu وأن تكامل Docker Desktop مفعّل لتلك التوزيعة نفسها. لا تستبدل مسار مضيف WSL بمسار Windows من نوع C:\.... يحسب Toolkit مسار الحاوية الشقيقة من OVERLEAF_DATA_PATH.
إن غياب ctexart.cls أو خط ما مع الصورة basic قيد في الحزم/الصورة. تحقّق أولًا من المقالة البسيطة من الخطوة 6؛ واستخدم صورة أكمل للمشاريع التي تحتاج إلى حزم إضافية. لا تعطّل البيئة المعزولة لإصلاح حزمة TeX مفقودة.
تُبلغ سكربتات الصدفة عن أخطاء CRLF
شغّل السكربتات في Ubuntu Bash. حرّر الإعدادات بنهايات أسطر LF. تعني الأخطاء التي تذكرbash\r أو $'\r' عادةً أن الملفات حُوّلت إلى CRLF الخاص بـ Windows. استعد السكربت المتأثر من المستودع أو حوّل نهايات أسطره، مع الحفاظ على تغييرات الإعدادات المحلية.
تختفي الحاويات بعد إعادة التشغيل
تحقّق من أن Docker Desktop قيد التشغيل وأن تكامل Ubuntu مفعّل. يعرضdocker ps الحاويات قيد التشغيل فقط؛ افحص docker ps -a أيضًا. إذا كان المحرك مختلفًا عن الذي استُخدم أثناء الإعداد، فعد إلى السياق الصحيح بدلًا من تهيئة تثبيت فارغ آخر.
بالنسبة إلى الحاويات الموجودة لكنها متوقفة، شغّل bin/start وافحص السجلات. اتبع إبقاء النسخة متاحة لبدء التشغيل عند تسجيل الدخول وسياسات إعادة التشغيل وإعدادات سكون Windows.
