الرئيسية
» مكتب MS
»
إصلاح مشكلة فشل بدء تشغيل حاوية كود Collabora على معمارية ARM64
إصلاح مشكلة فشل بدء تشغيل حاوية كود Collabora على معمارية ARM64
إذا تم تشغيل حاوية Collabora Online Development Edition (CODE) مباشرةً على جهاز ARM64، فابدأ بتوافق البنية قبل تغيير إعدادات الشبكة أو الشهادات أو WOPI. اعتبارًا من 7 أكتوبر 2026، collabora/codeيسرد المستودع الرسمي linux/arm64الإصدارات الأصلية للإصدارات الحالية، بما في ذلك latestالوسم الحالي والإصدار 26.04.4.2.1. هذا يعني أن مضيف ARM64 الحديث لا يحتاج عادةً إلى محاكاة x86 لتشغيل CODE. تتمثل أفضل طريقة للمبتدئين في التأكد من بنية المضيف، وفحص وسم الصورة بدقة، وإزالة أي إعداد AMD64 إجباري، وسحب صورة تدعم ARM64، ثم استكشاف أخطاء تكوين التطبيق وإصلاحها.
يركز هذا الدليل على فشل بدء التشغيل نفسه، ولا يفترض أن جميع مشاكل ARM64 لها نفس السبب. إذا بدأ تشغيل الحاوية بنجاح، ولكن لم يتمكن Nextcloud أو ownCloud أو أي مضيف WOPI آخر من الاتصال بها، فهذا يتطلب مستوى مختلفًا من استكشاف الأخطاء وإصلاحها.
ما تحتاج إلى معرفته قبل تغيير أي شيء
ARM64 هي بنية معالج ARM 64 بت. يُشار إليها عادةً في لينكس باسم aarch64، بينما يُشير إليها دوكر عادةً باسم linux/arm64. أما AMD64 ، أو x86-64، فهي بنية معالج مختلفة. تحتوي صورة الحاوية على ملفات ثنائية مُصممة لبنية واحدة أو أكثر؛ ولا يستطيع دوكر اختيار المتغير الصحيح تلقائيًا إلا إذا كان وسم الصورة يُوفر بيانًا متوافقًا.
الصورة متعددة المنصات هي عبارة عن وسم صورة واحد يشير بيان تسجيله إلى إصدارات صور منفصلة لبنى معمارية مثل AMD64 وARM64. تُوثّق Docker أنه عند سحب صورة متعددة المنصات، يتم اختيار الإصدار المطابق للمضيف تلقائيًا. راجع توثيق Docker للصور متعددة المنصات للاطلاع على آلية عملها.
بالنسبة لـ Collabora CODE تحديدًا، يُرجى مراجعة قائمة علامات collabora/code الرسمية على Docker Hub بدلًا من الاعتماد على دليل قديم. عند مراجعة هذه المقالة في 7 أكتوبر 2026، latestكانت 26.04.4.2.1تتضمن علامة linux/arm64مخصصة latest-arm64. قد تختلف الإصدارات المثبتة الأقدم، لذا فإن العلامة التي تستخدمها فعليًا أهم من الادعاء العام بأن "Collabora يدعم ARM".
قم بإعداد جلسة آمنة لحل المشكلات
احتفظ بنسخة من docker-compose.ymlأمر النشر الحالي.
سجل علامة الصورة Collabora التي تستخدمها بالضبط.
لا تقم بحذف بيانات التطبيق أو إعدادات الخادم الوكيل العكسي لمجرد تشخيص عدم تطابق البنية.
إذا كان هذا نشرًا إنتاجيًا، فقم باختبار علامة الاستبدال في نافذة الصيانة أو على مضيف تجريبي أولاً.
النتيجة المستهدفة بسيطة: يجب أن يقوم Docker بسحب صورة ARM64، ويجب أن يظل الحاوية قيد التشغيل بدلاً من الخروج على الفور، ويجب أن تتقدم سجلاتها إلى بدء تشغيل Collabora العادي بدلاً من الفشل بسبب خطأ في البنية.
الخطوة 1: تأكيد بنية المضيف وDocker
قم بتشغيل هذه الفحوصات على الجهاز الذي يقوم فعلياً بتشغيل حاوية Collabora:
uname -m
docker info --format '{{.Architecture}}'
docker version
على نظام لينكس ARM أصلي 64 بت، uname -mعادةً ما يُرجع قيمة aarch64، بينما يُفترض أن يُبلغ Docker عن قيمة arm64. تشير هذه الأسماء إلى نفس عائلة البنية في هذا السياق.
تحقق أولاً من بنية نظام التشغيل وبنية برنامج Docker. عادةً ما يظهر المضيف ذو بنية ARM64 الأصلية باسم aarch64 في نظام Linux و arm64 في Docker.
إذا أبلغ Docker عن AMD64 رغم أن الجهاز الفعلي يعمل بنظام ARM64، فحدد ما إذا كنت تستخدم بيئة Docker عن بُعد، أو جهازًا افتراضيًا، أو Docker Desktop مع واجهة خلفية مختلفة. عالج هذا الغموض قبل المتابعة. وإلا فقد تفحص نظامًا أثناء النشر على نظام آخر.
ما الخطأ الذي يشير إلى عدم تطابق في بنية النظام؟
تشمل الإشارات النموذجية exec format errorرسالة في سجل النظام تفيد بوجود خطأ no matching manifest for linux/arm64، أو خدمة Compose مُهيأة بشكل صريح باستخدام هذا الخطأ platform: linux/amd64. تُعد هذه الرسائل دليلاً أقوى على عدم توافق النظام الأساسي من مخرجات "انتهت الحاوية" العامة.
الخطوة الثانية: افحص علامة صورة Collabora بدقة قبل سحبها
لا تفترض أن كل علامة تاريخية تدعم نفس المنصة التي تدعمها العلامات الحالية latest. افحص بيانات التعريف الخاصة بالعلامة في سجل النظام الخاص بك:
تشرح وثائق أداة فحص الصور (imagetools inspect) الخاصة بـ Docker (buildx) كيفية عرض المنصات الموجودة في صورة السجل. يمكنك أيضًا استخدام docker manifest inspectالأمر المذكور في مرجع فحص البيان (manifest inspection) الخاص بـ Docker .
افحص بيان الصورة وابحث تحديدًا عن linux/arm64. يمكن أن تكون علامات CODE الرسمية الحالية متعددة المنصات، ولكن قد لا تكون العلامة المثبتة القديمة كذلك.
إذا linux/arm64ظهرت المشكلة، يمكنك استخدام وسم "متعدد المنصات" والسماح لـ Docker باختيار الصورة الصحيحة. ولإجراء اختبار استكشاف الأخطاء وإصلاحها بشكل صريح، يسرد المستودع الرسمي أيضًا معلومات حول هذا الموضوع latest-arm64. بالنسبة لعمليات النشر الإنتاجية طويلة الأمد، عادةً ما يكون من الأسهل إعادة إنتاج المشكلة باستخدام وسم إصدار محدد تم اختباره مسبقًا latest، لأن latestهذا الوسم يتغير مع نشر الإصدارات الجديدة.
إذا لم تتضمن العلامة المثبتة لديك ARM64، فلديك ثلاثة خيارات:
خيار
الأنسب
التنازل عن ميزة ممن أجل الحصول على أخرى
انتقل إلى علامة كود ARM64 الأصلية الحالية
معظم خوادم ARM64 ومختبرات المنازل
يجب عليك التحقق من توافق الإصدار وإعدادات التكامل الخاصة بك
ابقَ على الإصدار القديم باستخدام محاكاة AMD64
اختبار التوافق قصير المدى
تعقيد إضافي وتكلفة أداء محتملة؛ ليس الحل الأمثل عند وجود صورة أصلية
احتفظ بالإصدار القديم على مضيف AMD64
تثبيت الإصدار بشكل صارم عندما يكون خطر الترقية غير مقبول
يتطلب ذلك أجهزة مختلفة أو سعة جهاز افتراضي مختلفة
الخطوة 3: قم بإزالة أي تعديل غير مقصود على نظام AMD64 واسحبه بشكل نظيف
لا يكمن سبب الفشل الشائع في صورة Collabora نفسها، بل في ملف النشر الذي يفرض استخدام منصة خاطئة. يُعرّف Docker Compose platformنظام التشغيل المستهدف والبنية المستخدمة لاختيار نوع الصورة. يُظهر مرجع خدمة Docker Compose قيمًا مثل linux/arm64/v8...
إذا لم تكن بحاجة إلى المحاكاة، فاحذف هذا السطر ودع Docker يختار المتغير الأصلي للمضيف. أو يمكنك تحديد platform: linux/arm64متى تريد أن تكون بنية النظام واضحة.
يُعد خطأ تنسيق الملف التنفيذي دليلاً قوياً على أنه تم تحديد ملف ثنائي AMD64 على نظام ARM64 بدون مسار محاكاة مناسب.
ثم قم بإزالة الحاوية التي فشلت فقط وأعد سحب الصورة. لا تحذف البيانات الدائمة إلا إذا كان لديك سبب آخر للقيام بذلك.
docker compose down
docker image rm collabora/code:latest 2>/dev/null || true
docker pull --platform linux/arm64 collabora/code:latest
docker compose up -d
إذا كنت تستخدم علامة بنية مخصصة لتشغيل تشخيصي، فاستبدلها collabora/code:latest-arm64. بمجرد التأكد من نجاح النشر، فكّر في تثبيت إصدار محدد، مثل علامة 26.04.x التي تم اختبارها، بدلاً من ترك نظام الإنتاج على علامة متغيرة.
الخطوة 4: تحقق من بدء تشغيل CODE قبل استكشاف أخطاء التكامل وإصلاحها
بالنسبة لعملية نشر حاوية واحدة، فإن الأوامر المكافئة هي docker ps -aو docker logs --tail=100 <container-name>.
لا ينبغي لخدمة Compose المصححة فرض استخدام linux/amd64 على مضيف ARM64. دع علامة النظام الأساسي المتعدد تُحل تلقائيًا، أو اختر linux/arm64 صراحةً عند الحاجة.
أول معيار لنجاحك هو استمرار تشغيل الحاوية وعدم تعطلها بسبب خطأ في ملف البيان أو تنسيق الملف التنفيذي. بعد ذلك فقط، يمكنك الانتقال إلى إعدادات الوصول إلى المنفذ 9980، وإعدادات الخادم الوكيل العكسي، وبروتوكول TLS، ومضيفي WOPI المسموح بهم، أو تكامل التطبيقات. يُعد توثيق CODE Docker الرسمي من Collabora هو المرجع الأمثل للتحقق من معلمات النشر الحالية.
أخطاء شائعة يجب على المبتدئين تجنبها
قم بتثبيت QEMU قبل التحقق من الصورة الرسمية
قد يكون استخدام المحاكاة مفيدًا عندما يكون البرنامج متاحًا فقط لبنية معالج أخرى، ولكن صور Collabora CODE الحالية تتضمن إصدارات ARM64. قد يؤدي إضافة المحاكاة أولًا إلى إخفاء المشكلة الحقيقية وإضافة عنصر آخر غير متوقع. يُفضل استخدام ARM64 الأصلي عندما يدعمه إصدار CODE المطلوب.
بافتراض أن "الأحدث" وعلامة قديمة مثبتة متكافئتان
يرتبط توفر النظام الأساسي بعلامة صورة وبيان بيان محددين. قد تدعم العلامة الحالية معالج ARM64 بينما لا يدعمه إصدار أقدم. راجع المرجع الدقيق في ملف Compose الخاص بك.
تم فرض استخدام منصة linux/amd64 لأن دليلاً قديماً استخدمها.
قد يؤدي ذلك إلى قيام مضيف ARM64 بسحب نسخة x86-64 حتى في حال وجود صورة ARM64 أصلية. قم بإزالة هذا التعديل إلا إذا كان لديك سببٌ مُثبت ومُختبر للمحاكاة.
تغيير إعدادات WOPI أو SSL أو إعدادات البروكسي قبل أن تتمكن العملية من التنفيذ
يحدث خطأ exec format errorقبل أن تتمكن Collabora من معالجة معظم إعدادات التطبيق بشكل فعّال. لذا، يجب إصلاح اختيار البنية أولاً، ثم تأتي مشاكل الشبكات وWOPI لاحقاً.
حذف وحدات التخزين أثناء التشخيص
لا تتطلب حالات عدم التوافق في بنية النظام عادةً حذف البيانات الدائمة. لذا، اجعل نطاق الإصلاح محدودًا ليسهل التراجع عنه.
ماذا لو كانت صورة ARM64 لا تزال موجودة؟
إذا كان ملف البيان يتضمن بوضوح linux/arm64هذا الإصدار وقام Docker بسحبه، فإن بنية النظام لم تعد التفسير الرئيسي. عند هذه النقطة، يتم التقاط البيانات التالية:
docker compose psأوdocker ps -a
آخر 100-200 سطر من سجلات البيانات
رمز العلامة المحدد
إصدارات Docker Engine و Compose الخاصة بك
الأجزاء غير السرية من تعريف خدمة Compose الخاصة بك
ثم تحقق من الأذونات، والمسارات المُثبّتة، وملفات تعريف الأمان، وضغط الذاكرة، وتعارضات المنافذ، والشهادات، أو إعدادات WOPI وفقًا لرسالة السجل الفعلية. تجنب تغيير البنية بشكل متكرر بعد التأكد من أن الصورة قيد التشغيل هي ARM64.
مسار قرار عملي
إذا لم يكن المضيف من نوع ARM64، فتوقف عن استخدام إصلاح خاص بـ ARM64 وقم بتشخيص النظام الأساسي الحقيقي.
إذا كان المضيف ARM64 ولكن علامة CODE المختارة لا تحتوي على بيان ARM64، فانتقل إلى علامة أصلية مدعومة أو اختر استراتيجية استضافة مختلفة عن قصد.
إذا كان الوسم يدعم ARM64 ولكن Compose يفرض AMD64، فقم بإزالة الإعداد أو تصحيحه platform.
إذا كانت صورة ARM64 الصحيحة لا تزال موجودة، فتعامل معها على أنها مشكلة بدء تشغيل عادية في Collabora واتبع السجلات بدلاً من الاستمرار في إلقاء اللوم على بنية وحدة المعالجة المركزية.
خلاصة القول
في نظام ARM64 الحديث، لا يُفضّل عادةً استخدام المحاكاة. وكما تم التحقق منه في 7 أكتوبر 2026، تتضمن علامات Collabora CODE الرسمية الحالية صور ARM64 أصلية. تأكد من وجود aarch64/ arm64على الجهاز المضيف، وافحص بيان الصورة بدقة، واحذف مراجع AMD64 القديمة أو المفروضة، وأعد سحب الصورة المتوافقة مع ARM64، وتأكد من استمرار تشغيل الحاوية. يُسهّل هذا التسلسل عملية استكشاف الأخطاء وإصلاحها للمبتدئين، ويمنع تغييرات SSL أو البروكسي أو WOPI غير ذات الصلة من إخفاء عدم توافق أساسي بين النظامين.