أواجه مشكلة تثبيت Docker الخاص بك لا يعمل بشكل صحيح بعد تشغيل ./launcher rebuild app.
الخطأ هو docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.
… أرى أن إحدى النصائح الشائعة لحل هذه المشكلة هي ./launcher cleanup، ولكن قبل أن أفعل ذلك، أود التحقق للتأكد من أنه آمن للاستخدام، حيث أنني أحصل على:
تحذير! سيؤدي هذا إلى إزالة جميع الحاويات المتوقفة.
تحذير! سيؤدي هذا إلى إزالة جميع الصور التي لا تحتوي على حاوية واحدة مرتبطة بها على الأقل.
هل هذا يساعد؟ أريد فقط التأكد من أنني لا أحذف أي شيء مهم هنا.
يؤدي تشغيل ./launcher start app إلى ظهور نفس الخطأ:
docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.
See 'docker run --help'.
Your Docker installation is not working correctly
… لذلك لا أزال لا أعرف الإجابة على السؤال: هل من الآمن استخدام ./launcher cleanup عندما لا يكون الموقع قيد التشغيل؟
من لقطة الشاشة تحت ‘docker images’ في المنشور العلوي، يبدو أن هناك العديد من الصور القديمة، لكنني لا أعرف كيفية استهدافها تحديدًا للحذف، وما إذا كان هذا سيسبب أي مشاكل.
إذا كان حاوية Docker قيد التشغيل، فلن تحذف الحاوية. إذا لم تكن الحاوية قيد التشغيل، فستحذف الحاوية، ولكن يمكنك إعادة بناء حاوية جديدة باستخدام ./launcher rebuild app.
شكرًا لك، لكن الأمر لا يزال غير واضح تمامًا بالنسبة لي - دوكر ليس من نقاط قوتي، لذا لا أعرف ما إذا كان حذف حاوية وإعادة بنائها سيؤدي إلى إحداث أي مشاكل في موقعي… هل سيكون من الآمن تشغيل التطبيق أولاً عن طريق مسح بعض المساحة المحددة؟ مثل هذا:
أولاً، قم بمسح بعض المساحة عن طريق استهداف صورة معينة لحذفها
ثم قم بتشغيل ./launcher start app
بمجرد تشغيل التطبيق: ./launcher cleanup
… لست متأكدًا مما إذا كان هذا الحذر ضروريًا. ربما يكون مجرد تشغيل ./launcher cleanup مباشرةً جيدًا ولن يحذف أي شيء مهم على الرغم من أن تطبيقي لا يعمل.
ولكن في حال كنت تعتقد أن النهج أعلاه يمكن أن يكون خيارًا: هل تعرف الأمر لاستهداف صورة معينة لحذفها (الخطوة 1 أعلاه)؟ انظر خياراتي للصور التي يجب حذفها أدناه.
ما سأفعله هو حذف نسخة احتياطية أو اثنتين أولاً؟ هذا يجب أن يمنحك مساحة كافية لكي تعمل الأشياء.
إذا قمت بتشغيل ./launcher start app ثم ./launcher cleanup فلن يتم حذف صورتك التي تعمل، وسيستمر موقعك في العمل أثناء تقدم عملية التنظيف.
إذا ارتكب شخص ما خطأ وحذف صورتك التي تعمل، وقمت بالترقية مؤخرًا، فهناك فرصة جيدة جدًا لأن تتمكن ببساطة من تشغيل ./launcher rebuild app وستكون في وضع جيد.
إذا واجهت خطأ في الذاكرة عند إعادة البناء، فسأضيف جيجابايت أخرى من مساحة التبديل، على الرغم من أن ذلك سيجعل مشكلة مساحة القرص لديك أضيق (يبدو أنك تستخدم قطرة صغيرة بها 25 جيجابايت من ذاكرة الوصول العشوائي، وهو ما يكفي بالكاد). سأقوم بتشغيل ./launcher cleanup قبل كل إعادة بناء، أو ربما لديك مجرد مجموعة من النسخ الاحتياطية ويجب عليك نقلها إلى S3 ([تكوين موفر تخزين كائنات متوافق مع S3 لتحميل الملفات](Configure an S3 compatible object storage provider for uploads --يمكنك القيام بالنسخ الاحتياطية فقط، وليس كل الأصول كما هو موضح هناك)).
كان الخطأ الثاني ليس خطأ في الذاكرة، ولكن لم أتمكن من تحديد الخطأ الجديد: ومن هنا جاء الطبيب.
على أي حال، قام ./discourse-doctor بحله، وكنت أتمنى فقط أن أعرف ما حدث بالفعل.
شكرا لمساعدتك!
كان تخميني أنك تخلط بين ذاكرة الوصول العشوائي (الذاكرة) ومساحة القرص. يمكن أن تأتي رسالة خطأ الذاكرة وتختفي، ورسالة الخطأ “error 127” غامضة ويسهل تفويتها.