لقد كنت أدير Discourse لسنوات، وتجربتي كانت رائعة باستمرار باستثناء مشكلة واحدة متكررة:
كلما رأيت “أنت تستخدم إصدارًا قديمًا من صورة Discourse” على شاشة التحديث، يغمرني شحوب قاتم وشعور طاغٍ بالرهبة.
لماذا؟
لأنني أعلم أنني سأصارع خادم DigitalOcean الخاص بي من سطر الأوامر - وهو أمر أكرهه بشكل عام - لبضع ساعات قبل أن أتمكن من إجراء الترقية بشكل صحيح.
وهذه المرة، لا يبدو أنني أستطيع جعل الأمر يعمل على الإطلاق
على حد علمي، فإن المساحة المجانية الخاصة بي يتم استهلاكها بواسطة الدليل /dev/vda1. ولكن عندما أقوم بفحص هذا الدليل، أحصل على ردود فعل مختلفة اعتمادًا على الطريقة!
توضح الصورة أدناه هذه الغرابة. لاحظ كيف، في الجزء العلوي (الذي يأتي من أمر df -h)، يبدو أن المجلد /dev/vda1 لديه 7.1 جيجابايت مجانية.
ولكن لاحظ بعد ذلك كيف يقول المشغل أن هناك 4 جيجابايت فقط مجانية في نفس المجلد!
على وجه التحديد، أبحث عن نصيحة حول سبب إرجاع طريقتين مختلفتين لمراقبة الملف لكميتين مختلفتين من المساحة المجانية.
ثم أود أن أعرف كيف أستفيد من الـ 7.1 جيجابايت المفتوحة حتى أتمكن من إجراء الترقية.
(للتوضيح، أنا لا أبحث عن رد كسول مثل “فقط قم بترقية خادم DO الخاص بك” - إذا كنت أرغب في مضاعفة نفقاتي السنوية على هذا المنتدى، لكانت قد فعلت ذلك بالفعل.)
لهذا الإصلاح على وجه الخصوص، احتجت إلى تنزيل صورة أساسية جديدة، كما هو موضح في الأسطر من WARNING إلى Status في لقطة الشاشة الخاصة بك. هذه كبيرة، 2.81 جيجابايت وفقًا لنظامي، لذا ما تراه هو المساحة المفقودة لهذا الإصدار الجديد من الصورة الأساسية.
# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
discourse/base latest ab71a5d97460 4 days ago 2.81GB
سيؤدي استخدام ./launcher cleanup إلى مسح الحاويات والصور غير المستخدمة والتي قد تستعيد مساحة كافية، وكما قال @pfaffman، قد يتمكن التقليم باستخدام docker مباشرة من مسح المزيد من الكائنات غير المستخدمة، على الرغم من أنني شخصياً لم أر أي فائدة كبيرة تتجاوز الحاويات والصور.
شيء آخر قد يساعد هو مسح ذاكرة التخزين المؤقت لـ apt والتي يمكن أن تصبح كبيرة جدًا.