تحديث Discourse وصورة Docker يدوياً إلى الأحدث

:bookmark: يقدم هذا الدليل إرشادات خطوة بخطوة لتحديث Discourse و حاوية Docker ونظام تشغيل Ubuntu يدويًا في الإعداد المستضاف ذاتيًا.

:person_raising_hand: مستوى المستخدم المطلوب: مسؤول النظام

:warning: الوصول عبر SSH إلى الخادم.

إذا قمت باستضافة Discourse ذاتيًا، فستحتاج أحيانًا إلى إجراء تحديث يدوي عبر سطر الأوامر للحصول على أحدث إصدارات الأمان وأحدث المكتبات.

هذه التحديثات لا يتم التقاطها في admin/upgrade، ولهذا السبب ستحتاج أحيانًا إلى القيام بهذه الخطوات الإضافية:

تحديث Discourse

  1. يجب تحديث Discourse نفسه حوالي مرتين في الشهر، عن طريق النقر فوق زر “التحديث إلى أحدث إصدار” في لوحة الإدارة الخاصة بك (admin/upgrade).

  2. كل شهرين نوصي بتسجيل الدخول عبر SSH إلى خادم الويب الخاص بك (باستخدام putty أو عميل SSH المفضل لديك) وتشغيل الأوامر التالية، خاصة إذا لم تظهر صفحة الترقية أو واجهت أي مشاكل عند محاولة الترقية.

cd /var/discourse
./launcher rebuild app

تحديث صورة Docker ونظام تشغيل Ubuntu

بالنسبة لتحديثات Ubuntu، تأكد من تمكين التحديثات الأمنية التلقائية لنظام Ubuntu الخاص بك! الأمر هو:

dpkg-reconfigure -plow unattended-upgrades

ومع ذلك، يغطي هذا التحديثات الأمنية الحرجة فقط. بين الحين والآخر يجب أن تحصل على جميع تحديثات نظام التشغيل كما يلي:

apt-get update
apt-get dist-upgrade

سيؤدي هذا أيضًا إلى تحديث Docker عبر حزم docker-ce القياسية.

لتلخيص:

  • تحديث Discourse مرتين شهريًا عبر مُحدِّث الويب
  • تحديث الحاوية كل شهرين
  • تحديث نظام التشغيل كل ستة أشهر

يمكنك مضاعفة هذه الأرقام ولا يزال الأمر آمنًا جدًا، على سبيل المثال، تحديث Discourse مرة واحدة شهريًا، والحاوية كل 4 أشهر، ونظام التشغيل مرة واحدة كل 12 شهرًا، وهكذا.

ولكنك حقًا، حقًا تريد تمكين التحديثات الأمنية التلقائية في Ubuntu، كما هو موضح أعلاه.

الأسئلة الشائعة

ما هو الوقت المناسب للتحديث؟

يعتمد الأمر فقط على الوقت المتاح لديك ومدى قربك من أحدث التقنيات التي تريدها. إذا كان لديك مكونات إضافية غير رسمية، فمن المستحسن للغاية استخدام موقع اختبار/مرحلي. إذا لم يكن لديك أي مكونات إضافية غير رسمية، فمن المحتمل أن تتمكن من الترقية على الفور، ولكن حتى في هذه الحالة، قد تتوقف بعض المكونات الإضافية عن العمل لبضعة أيام بينما يقوم الفريق بإصلاحها (هناك الكثير منها).

ما هي الممارسة الشائعة عند التحديث مع تثبيت العديد من المكونات الإضافية؟

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

مساحة القرص لدي منخفضة

إذا كانت مساحة القرص لديك منخفضة (تحقق باستخدام df) فحاول مسح الصور القديمة باستخدام:

./launcher cleanup
apt-get autoclean
apt-get autoremove

هل تحديث إصدار Ubuntu الفعلي للخادم مهم بما أن Discourse يعمل دائمًا في Docker؟

إنه أقل أهمية بكثير. ولكن يجب أن تكون على الأقل على إصدار LTS مدعوم حاليًا من Ubuntu server. مطلوب نظام تشغيل Linux 64 بت مع إصدار نواة حديث.

178 إعجابًا
"Upgrade all" button is awesome!
Ubuntu 16.04 LTS - upgrade or migrate?
Cannot upgrade due to old version of docker
Daily performance reports keep asking to rebuild container
No longer getting notifications for out of date containers
Discourse stopping working - CPU/RAM load?
Manual upgrade fails
Upgrade container - keeping config and data
Installed OK. Working fine for one day. Suddenly stopped working
Issues upgrading from 1.6.0.Beta10+9 to 2.3.0.beta6
Upgrade link no longer works
Update error, website unavailable, possibly plugin related?
How to optimize storage?
Why do I need a block storage?
Digital Ocean hosting: Do I need a system admin?
Will not load, no access to installation, aufs not installed - my fix
Upgrade V2.1 Beta 2 to Beta 4 Require ./launcher rebuild app Twice
Some trouble updating (many bugs)
What makes a successful volunteer Discourse sysadmin?
Searching locks up the server for a while
Link-image not shown
Oops - Error 500 After Update From Admin Dashboard
Crash After Recent Update
Edit CSS/HTML editor cursor offset makes it unusable due to CSS font override
Oops The software powering this discussion forum encountered an unexpected problem
Upgrades via UI disabled - and not being re-enabled after SSH upgrade
Error upgrading, failed to bootstrap
Help after updating from ssh site goes down
My Discourse is Down. Certificate Issue?
Unable to update Discourse...help?
Reset password link error
Empty update page?
My website is always down
Upgrade container - keeping config and data
Failed to update Discourse new version
Unable to upgrade docker_manager
Undefined method `timeout=' for Regexp:Class
How often should I update Discourse?
Migration failed: relation "user_required_fields_versions" already exists
Kernel version upgrade required when manually updating discourse
Cannot rebuild following site failure: "postgres already running"
Visiting /admin/upgrade may lead to a server error
Updating I get a "Configuring openssh-server" message about the "sshd_config" file
Update Not Completing
Problem with api version when updating docker manager
Problem with Upgrade [error 137]
Problem updating my installation
Update in browser vs Terminal
Docker update to latest version
How often should I update Discourse?
Self hosted Reply by Email stopped working after latest update
Error 500 how to fix?
Site down after UI update
Docker update to latest version
Selectable avatars upload broken (Missing required UppyUpload config: id)
Discourse broken after failed upgrade
How to tell whether to upgrade via web or console?
Oops The software powering this discussion forum encountered an unexpected problem
Determining whether my VPS needs any upgrades (generally)
Kernel version upgrade required when manually updating discourse
Upgrade button is 500-ing for me
1.4.3 Upgrade Oddity?
Add path to cookie
Your Docker installation is not working correctly - no space left on device - safe to use ./launcher cleanup?
PNG's a no show
Upgrade from v2.0.0.beta10 +37 to 2.1.0.beta1 does fail
Kernel Panic after droplet reboot... What now?
Failed to bootstrap 1.6.0.beta 8 with out of date docker
Problem with category style = box under firefox
Site fails to load with js errors
ERROR: You are running an old version of the Discourse image
Service not available | Update Error due to broken plugin
What do you want to do about modified configuration file grub?
Failed Upgrade Discourse and Plugins
Insert Date Timezone is always UTC ; my Timezone is ignored
Admin upgrade page does not exist
Upgrading from 2.9.0.beta8 broke the site, unrecoverable
Error when upgrading and would like to solve or reset
Update failed - Not starting
Failed to rebuild: no such file /usr/local/etc/ImageMagick-6/policy.xml
Upgrade ends with FAILED TO BOOTSTRAP
"400 Bad Request" error after upgrading
Hello, after clicking login, it takes 20 seconds to load before you can enter my page. why?

تتم مراجعة الأدلة وتحديثها بشكل متكرر إلى حد ما (يبدو أن هذا الدليل قد تم تعديله قليلاً في فبراير). :+1:

الوحيد الذي لست على دراية شخصية به هو الخاص بـ docker:

لكن يمكنني أن أشهد على دقة الباقي. :slight_smile:

3 إعجابات

لقد قمت بتشغيل جميع هذه الأوامر على موقع الاختبار الخاص بي، بما في ذلك تحديث Docker، وقد نجحت دون أي مشاكل.

5 إعجابات

لقد تلقيت تقريرًا عن تسبب هذا في مشكلة عند تشغيله. لا أعتقد أنني استخدمته بنفسي خلال العامين الماضيين من امتلاكي لموقع اختبار DO.

هل لدى أي شخص أي خبرة حديثة به ليقول ما إذا كانت هذه النصيحة لا تزال ذات صلة أم لا؟


لقد تصفحت للتو المشاركات المحذوفة ووجدت عددًا قليلاً حيث تم طرح هذا الجزء من الدليل من قبل [1] ويبدو أن @MarkDoerr قام بتشغيله دون مشاكل.

على الرغم من أنني لا أزال غير متأكد مما إذا كان متى / في ظل أي ظروف ستكون مطالبًا بتشغيله؟ هل لدي الكثير من الثقة في Docker Manager؟


  1. لقد قمت بإلغاء حذفها ↩︎

إعجابَين (2)

تم تقسيم مشاركتين إلى موضوع جديد: When to update the data container of a two container setup?

تم تقسيم مشاركة إلى موضوع جديد: ترقية منتدى v2.2.0.beta4 مع تغييرات محلية غير معروفة

لقد حاولت تشغيل هذا الأمر (wget -qO- https://get.docker.com/ | sh) الآن ويبلغ:

لا يمكن الاتصال بـ Docker daemon على unix:///var/run/docker.sock. هل يعمل Docker daemon؟

يبدو أن هذا لم ينجح في تحديث Docker.

يبدو أيضًا أنه تسبب في تعطل الموقع بالكامل، ولا يمكن إعادة بناء التطبيق، ويبلغ:

لا يمكن الاتصال بـ Docker daemon - تحقق من أنه يعمل وأن لديك حق الوصول

بعد إعادة تشغيل الخادم، عاد الموقع عبر الإنترنت.

ربما قام بالتحديث لكنه فشل في إعادة تشغيل Docker. يمكنك التحقق باستخدام

docker --version

اتضح أن جهاز اللابتوب الخاص بي كان يملك إصدار قديم من Docker وأشغل الأمر الموصى به ولم أضطر لإعادة التشغيل ليعمل. إليك ما يظهر لي حول الإصدار:

$ docker --version
Docker version 26.1.4، بناء 5650f9b
إعجاب واحد (1)

لديك نفس إصدار Docker:

Docker version 26.1.4, build 5650f9b
إعجاب واحد (1)

إذًا، لقد قمت بالتحديث وكل شيء على ما يرام!

3 إعجابات

لقد علمت أنني رأيت هذه الوثيقة تغطي إيقاع تحديث Discourse، لكنني واجهت صعوبة في العثور عليها مرة أخرى لأنها موجودة في Documentation تحت “Using Docker” وتحمل عنوان “Manually update Docker”.

نظرًا لأنها تغطي تحديثات Discourse و Ubuntu، فهل يمكن أن يكون لها مكان أو مكانين آخرين في القائمة؟

إعجاب واحد (1)

عندما ينصحك Discourse بتحديث صورة (بحيث لا يكون من الممكن الترقية من واجهة المستخدم) فإنه يخبرك بفعل هذا:

    cd /var/discourse
    git pull
    ./launcher rebuild app

ما الغرض من git pull الإضافي هذا ولماذا لا توصي به في الدليل؟

3 إعجابات

إنها قطعة أثرية قديمة ولم تعد هناك حاجة إليها. إعادة البناء تقوم بذلك.

إعجابَين (2)

هل أقدم طلب سحب؟

3 إعجابات
6 إعجابات

تم الدمج، شكرًا @tvavrda!

6 إعجابات