الترقية إلى 3.3 تفشل بالنسبة لي

حاولت الترقية باستخدام واجهة المستخدم، وفشل ذلك كما هو موضح في:

لذلك، قمت باستعادة الـ droplet الخاص بي من نسخة احتياطية، ثم حاولت الترقية يدويًا.

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

والذي يعطي هذا:

WARNING: Docker version 20.10.7 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

2.0.20240825-0027: Pulling from discourse/base
e4fff0779e6d: Pulling fs layer 
04dda0e597e7: Pulling fs layer 
0b0ac7902d91: Pulling fs layer 
1ea0327cd622: Waiting 
459f11cf96b2: Waiting 
cd49b55154ee: Waiting 
4f4fb700ef54: Pull complete 
890a63bee26b: Pull complete 
1d239a1092e9: Pull complete 
7439767d748f: Pull complete 
19e63282f9d1: Pull complete 
6da4866029f1: Pull complete 
3274548c87f4: Pull complete 
fb2589b81eef: Pull complete 
da453ab7ba03: Pull complete 
260969aca4e8: Pull complete 
0c7927423a10: Pull complete 
cfdfd8bdc03e: Pull complete 
f837c184a2c0: Pull complete 
d14903daf553: Pull complete 
01422fc4dc02: Pull complete 
e918b15c8f19: Pull complete 
3202b43401af: Pull complete 
3fa0a48e923e: Pull complete 
2f1f96b416a1: Pull complete 
b5376d8069b5: Pull complete 
259e102648be: Pull complete 
807236570b2a: Pull complete 
e98845c05b05: Pull complete 
578a5e3e249f: Pull complete 
6b0bf88c86e8: Pull complete 
9551a14ee15e: Pull complete 
8bbcc4c7a11d: Pull complete 
5aff35532071: Pull complete 
f73f45300530: Pull complete 
42888ce727c0: Pull complete 
e8467a663928: Pull complete 
d2fb91f4643c: Pull complete 
88fc9778a448: Pull complete 
2a19d28a5a17: Pull complete 
6a2d56837370: Pull complete 
933885f686e0: Pull complete 
aecf6df6a6bb: Pull complete 
33fcdcfe61e2: Pull complete 
12726a4d34c8: Pull complete 
Digest: sha256:6de68cb49198b5281f79ed9401b3fe818c854d220dcf0238549fe2f2adb19146
Status: Downloaded newer image for discourse/base:2.0.20240825-0027
docker.io/discourse/base:2.0.20240825-0027
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20240825-0027: Pulling from discourse/base
Digest: sha256:6de68cb49198b5281f79ed9401b3fe818c854d220dcf0238549fe2f2adb19146
Status: Image is up to date for discourse/base:2.0.20240825-0027
docker.io/discourse/base:2.0.20240825-0027
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-10-15T06:14:37.390458 #1]  INFO -- : Reading from stdin
I, [2024-10-15T06:14:37.395803 #1]  INFO -- : > echo cron is now included in base image, remove from templates
I, [2024-10-15T06:14:37.398391 #1]  INFO -- : cron is now included in base image, remove from templates

I, [2024-10-15T06:14:37.408024 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2024-10-15T06:14:37.412237 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2024-10-15T06:14:37.416506 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2024-10-15T06:14:37.420758 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown: 
I, [2024-10-15T06:14:37.424824 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2024-10-15T06:14:37.425837 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2024-10-15T06:14:37.426590 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2024-10-15T06:14:37.427073 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2024-10-15T06:14:37.427713 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2024-10-15T06:14:37.428194 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2024-10-15T06:14:37.428633 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2024-10-15T06:14:37.429175 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2024-10-15T06:14:37.429569 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2024-10-15T06:14:37.430001 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2024-10-15T06:14:37.430562 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2024-10-15T06:14:37.430964 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-10-15T06:14:37.431353 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-10-15T06:14:37.431673 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi

I, [2024-10-15T06:14:37.974529 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2024-10-15T06:14:37.975013 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2024-10-15T06:14:37.976577 #1]  INFO -- : Terminating async processes
2024-10-15 06:14:38.136 UTC [36] LOG:  starting PostgreSQL 13.16 (Debian 13.16-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-10-15 06:14:38.138 UTC [36] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-10-15 06:14:38.139 UTC [36] LOG:  listening on IPv6 address "::", port 5432
2024-10-15 06:14:38.143 UTC [36] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-10-15 06:14:38.154 UTC [37] LOG:  database system was shut down at 2024-10-15 06:14:28 UTC
2024-10-15 06:14:38.176 UTC [36] LOG:  database system is ready to accept connections

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

ماذا يجب أن أحاول بعد ذلك؟

أعتقد أن ترقيات واجهة المستخدم تتطلب المزيد من الذاكرة لأنك تحاول تشغيل الموقع وإعادة بنائه في وقت واحد.

تأكد من أن لديك مساحة تبديل كافية للتكيف - على الأقل بنفس حجم ذاكرة الوصول العشوائي لديك.

لذا، على خادم بسعة 4 جيجابايت، تأكد من أن لديك مساحة تبديل بسعة 4 جيجابايت.

بالمناسبة، أمر git pull هنا غير ضروري. يقوم البرنامج النصي للبناء بذلك نيابة عنك.

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

لدي خادم بذاكرة وصول عشوائي (RAM) بسعة 4 جيجابايت، ومساحة مبادلة (Swap) بسعة 4 جيجابايت. يتوقف إعادة البناء عند database system is ready to accept connections ولا يكتمل، ويبقى المنتدى معطلاً. يمكنني استعادته من نسخة احتياطية لـ Droplet (مرة أخرى) مما سيعيدني إلى منتدى 3.2 يعمل، ولكن من الأفضل حل هذه المشكلة.

# free
              total        used        free      shared  buff/cache   available
Mem:           3919         286        1443          20        2189        3360
Swap:          4095           2        4093
Total:         8015         288        5537
إعجابَين (2)

في هذه الظروف، أقوم عادةً بإعادة التشغيل (على مسؤوليتي الخاصة) ولكن ذلك لم يفشلني بعد. على الأقل هذا يعيد الموقع للعمل.

تأكد من أن نظام التشغيل الخاص بك محدث بشكل معقول (LTS) وأن تحذير Docker هذا يبدو جديرًا بالملاحظة.

هل تراقب ذاكرتك أثناء إعادة البناء باستخدام htop للتأكد؟

يبدو أن هناك الكثير من التبديل (swap). :+1:

إعجابَين (2)

نظام التشغيل الخاص بي هو Ubuntu 20.04.6 LTS.

هاه. حسنًا، لقد أعدت التشغيل وعاد المنتدى للعمل.

آه، لكنه لا يزال يقول إنه مثبت الإصدار 3.2.4، والإصدار الأحدث هو 3.3.2، لذا لم يتم تحديثه.

لذا لست متأكدًا من أين يتركني هذا. سأحاول التحديث مرة أخرى.

نعم، يتوقف عند نفس المكان. أفترض أن إصدارًا أحدث من Docker سيتطلب تحديث الإصدار الرئيسي من Ubuntu، وهو ما أعتقد أنني أستطيع القيام به، لم أكن أخطط للقيام بذلك في هذا الوقت.

سأقوم بتحديث نظام التشغيل و Docker الخاص بك للتأكد.

في بعض الأحيان تكون هناك تأخيرات كبيرة في سكربت البناء في نقاط مختلفة. ما هي المدة؟

إعجابَين (2)

لقد علق عند تلك النقطة عندما عدت بعد 15-20 دقيقة. منذ ذلك الحين لم أنتظر طويلاً بشكل خاص. من الممكن أنه يقوم بشيء ما، ولكن لا يوجد دليل على ذلك. لا شيء يستخدم أي وحدة معالجة مركزية ملحوظة.

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

أعتقد أن لديك خيارين في هذه المرحلة:

  • ترقية نظام التشغيل و Docker في مكانهما - ثم إعادة المحاولة
  • Droplet جديد.

قد يكون الخيار الأخير أسرع.

حسنًا، لدي لقطة حالية، أفترض أن إجراء ترقية لأوبونتو لن يضر في هذه المرحلة، يمكنني دائمًا التراجع عن كل شيء.

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

آه، إنه يرفض لأن

عذرًا، برنامج تشغيل التخزين هذا غير مدعوم في النوى للإصدارات الأحدث

لن تكون هناك أي إصدارات Ubuntu أخرى توفر دعم النواة لبرنامج تشغيل تخزين aufs.

يرجى التأكد من أن أياً من حاوياتك لا تستخدم برنامج تشغيل تخزين aufs، وقم بإزالة الدليل /var/lib/docker/aufs وحاول مرة أخرى.

تنهد. لا شيء سهل أبداً، أليس كذلك؟

إعجابَين (2)

قطرة جديدة. :).\n\nSteps involved to downgrade from 2GB to 1GB on DO? - #3 by merefield(ولا تنسَ إعادة إنشاء المبادلة على الخادم الجديد إذا لم يتم إنشاؤها بالفعل)

3 إعجابات

حسنًا، يمكن اعتبار عملية الترقية بأكملها كارثة غير محدودة.

سأعيد القطرة إلى ما كانت عليه من قبل (Ubuntu 20.04.6 LTS و Discord 3.2.4) وسأدفن رأسي في الرمال وأنسى كل شيء عن 3.3 وأحاول مرة أخرى في يوم آخر.

شكراً لمحاولتك المساعدة.

إعجابَين (2)

ميزة إضافية - عندما أقوم باستعادة القطرة، لسبب ما يتم تسجيل خروجي - ولا يمكنك تسجيل الدخول، حتى بصفتي مسؤولاً بينما الموقع في وضع القراءة فقط!

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

خطر ببالي للتو، لا يمكنني تبديل Docker إلى overlay2 كما هو موضح في (Change the Docker storage backend) حتى أتمكن من تحديث Ubuntu لأن التبديل إلى overlay سيتطلب ./launcher rebuild app والذي يفشل (إلا إذا كان التبديل إلى overlay2 يحل المشكلة ولكن هذا وحده يبدو غير مرجح). لذا يبدو ترحيل البيانات إلى قطرة جديدة هو الطريقة الوحيدة المعقولة للمضي قدمًا، على الرغم من أن هذا سيتطلب على الأرجح تغييرات في DNS والتي تكون بطيئة بشكل عام. تنهد.

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

قد تتمكن من إعادة تشغيل الحاوية باستخدام

docker start app

قد تتمكن أيضًا من حل مشكلتك باستخدام

apt install docker-ce docker-ce-cli

لست متأكدًا من المشكلة المتعلقة بالطبقة المتراكبة. هل قمت بترقية نظام التشغيل من إصدار أقدم من Ubuntu في وقت ما؟
إذا كنت تستخدم DigitalOcean، يمكنك إنشاء عنوان IP ثابت يشير إلى الخادم القديم وتحديث DNS ليشير إليه. ثم عند الانتقال إلى الخادم الجديد، لن يكون هناك تأخير في DNS حيث يمكنك إعادة توجيه عنوان IP إلى الخادم الجديد.

إعجابَين (2)

نعم، أعاد ذلك تشغيل الحاوية، ولكن دون أي ترقية.

لا أعرف ما يحدث بعد ذلك بعد “نظام قاعدة البيانات جاهز لقبول الاتصالات” في عملية الترقية، ولكن هذا هو أبعد ما يمكن أن تصل إليه وبعد ذلك لا شيء أبعد من ذلك (إلا إذا كانت الخطوة التالية تستغرق وقتًا طويلاً جدًا).

نعم، تم تحديث Ubuntu سابقًا. لذا فإن Docker موجود على aufs، وكان دائمًا كذلك.

هل من الممكن إعادة البناء دون ترقية؟ إذا نجح ذلك، فربما يمكنني تبديل Docker الحالي من aufs إلى overlay2، مما يعني بعد ذلك أنه ربما يمكنني ترقية Ubunto إلى 22، مما قد يعني أن الأشياء الأخرى تعمل بعد ذلك - ولكن في الوقت الحالي ليس لدي أي فكرة عن سبب توقف الترقية عند تلك النقطة، لذا فهي مجرد أمل فيما قد يحلها.

لا، سيتم الترقية إلى آخر تثبيت على الفرع المحدد.

تذكر أن الترحيل إلى خادم جديد قد يستغرق 30 دقيقة فقط.

نعم، يبدو أنني سأضطر إلى اتباع هذا المسار - لا تلومني على مشاعري ولكنني لم أرغب حقًا في إعداد خادم جديد بالكامل (والذي يشغل أيضًا بعض الأشياء الأخرى بالإضافة إلى Discourse والتي سيتعين ترحيلها أيضًا) فقط لترقية المنتدى.

حسنًا، هذه هي حياة أي شخص يدير خادمه الخاص.

إعجابَين (2)

نعم، يبدو أنه يتوقف هناك لسبب ما. لا أعرف لماذا، ولكن يبدو أن ترقية Docker قد ساعدت بعض المواقع.

هل حاولت ترقية Docker كما ذكرت أعلاه؟

يمكنك إصلاح التراكب إذا حاولت البحث في مكان آخر. لهذا السبب لا أثق في ترقيات نظام التشغيل.

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

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

شكرا لك.