مشاكل في التحديث/إعادة البناء إلى Beta7

مرحباً،

أنا أحاول حالياً تحديث مثيل DEV لدينا إلى أحدث إصدار تجريبي (Beta 7)، قادمًا من الإصدار التجريبي 2.
يعمل النظام على الفرع الافتراضي tests-passed.

مشكلتي هي أن إعادة بناء الحاوية (container) تنتهي بمشكلة اتصال (أعتقد أنها مع GitHub):

I, [2025-07-28T12:35:19.480463 #1]  INFO -- : استبدال postgres بـ if [ -f /root/install_postgres ]; then
  /root/install_postgres
  rm /root/install_postgres
fi
sv start postgres || exit 1
 في /etc/service/unicorn/run
I, [2025-07-28T12:35:19.480838 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2025-07-28T12:35:19.511065 #1]  INFO -- : 
I, [2025-07-28T12:35:19.511112 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin tests-passed
      git fetch --depth 1 origin tests-passed
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
error: RPC failed; curl 56 Recv failure: Connection reset by peer
error: 44 bytes of body are still expected
fatal: expected flush after ref listing
I, [2025-07-28T12:37:22.158398 #1]  INFO -- : 
I, [2025-07-28T12:37:22.158628 #1]  INFO -- : إنهاء العمليات غير المتزامنة

الاتصال العام على المضيف (Host) يعمل بشكل جيد بخلاف ذلك. إذا قمت بمسح ذاكرة التخزين المؤقت لبناء Docker قبل تنفيذ ./launcher rebuild app، يمكنني رؤية أنه يقوم فعلياً بسحب أحدث إصدار، وسحب جميع صور الحاويات وما إلى ذلك، لكنه يفشل بعد ذلك:

مخرجات طويلة من stdout
I, [2025-07-28T12:19:42.269421 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin tests-passed
      git fetch --depth 1 origin tests-passed
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
من https://github.com/discourse/discourse
 - [حُذِف]             (none)     --> origin/dependabot/bundler/nokogiri-1.18.9
 - [حُذِف]             (none)     --> origin/dependabot/bundler/playwright-ruby-client-1.54.0
 - [حُذِف]             (none)     --> origin/dependabot/bundler/propshaft-1.2.0
 - [حُذِف]             (none)     --> origin/dependabot/npm_and_yarn/babel-plugin-ember-template-compilation-3.0.0
 - [حُذِف]             (none)     --> origin/dependabot/npm_and_yarn/glob-11.0.3
 - [حُذِف]             (none)     --> origin/dependabot/npm_and_yarn/playwright-1.54.1
 - [حُذِف]             (none)     --> origin/dev/decorate-quote-collapsed-content-properly
 - [حُذِف]             (none)     --> origin/dev/extract-invite-guardian
 - [حُذِف]             (none)     --> origin/dev/mt/discourse-category-custom-fields
 - [حُذِف]             (none)     --> origin/dev/mt/discourse-group-users
 - [حُذِف]             (none)     --> origin/dev/mt/discourse-groups
 - [حُذِف]             (none)     --> origin/dev/mt/discourse-muted-users
 - [حُذِف]             (none)     --> origin/dev/mt/requires-set
 - [حُذِف]             (none)     --> origin/dev/no-more-widgets
 - [حُذِف]             (none)     --> origin/dev/use-themeable-site-settings-horizon
 - [حُذِف]             (none)     --> origin/enable-new-topic-btn-on-restricted-category
 - [حُذِف]             (none)     --> origin/feature-admin-filter-controls
 - [حُذِف]             (none)     --> origin/feature/enable-rich-editor-for-all
 - [حُذِف]             (none)     --> origin/filtermagic
 - [حُذِف]             (none)     --> origin/fix/mt/log-failed-downloads
 - [حُذِف]             (none)     --> origin/fix/translated-badge-title
 - [حُذِف]             (none)     --> origin/layout-container-dev
 - [حُذِف]             (none)     --> origin/loic-upgrade-rails-8.0
 - [حُذِف]             (none)     --> origin/media-convert-job
 - [حُذِف]             (none)     --> origin/merge-sso-destination-url-cookie-with-destination-url-cookie
 - [حُذِف]             (none)     --> origin/mt/set_store
 - [حُذِف]             (none)     --> origin/pento/dev-flag-reason-tests
 - [حُذِف]             (none)     --> origin/playwright-1.53
 - [حُذِف]             (none)     --> origin/refactor-color-palette
 - [حُذِف]             (none)     --> origin/remove-suspended-and-deleted-users-from-leaderboard
 - [حُذِف]             (none)     --> origin/rollup-theme-experiment
 - [حُذِف]             (none)     --> origin/ux-editor-toolbar-mobile-scroll
 - [حُذِف]             (none)     --> origin/ux/sidebar-show-messages-count
   43ddd4ef3..ea5b5b6c0  main                    --> origin/main
 * [فرع جديد]          0-a-depr-html-safe      --> origin/0-a-depr-html-safe
 * [فرع جديد]          0-a-tabs                --> origin/0-a-tabs
 * [فرع جديد]          add-composer-mention-warnings --> origin/add-composer-mention-warnings
   187f13d67..8d4a86f25  add-plugin-outlet-wrapper-to-login-template --> origin/add-plugin-outlet-wrapper-to-login-template
 * [فرع جديد]          ai_default_llm          --> origin/ai_default_llm
 * [فرع جديد]          content-border-color    --> origin/content-border-color
 + 51077ac74...088f149a6 dependabot/bundler/excon-1.2.8 --> origin/dependabot/bundler/excon-1.2.8  (تحديث قسري)
 + 36699b311...e3f5c2d0d dependabot/bundler/jwt-3.1.2 --> origin/dependabot/bundler/jwt-3.1.2  (تحديث قسري)
 * [فرع جديد]          dependabot/bundler/octokit-10.0.0 --> origin/dependabot/bundler/octokit-10.0.0
 * [فرع جديد]          dependabot/bundler/stripe-15.3.0 --> origin/dependabot/bundler/stripe-15.3.0
 + def825f3f...b5a5f3924 dependabot/bundler/web-push-3.0.2 --> origin/dependabot/bundler/web-push-3.0.2  (تحديث قسري)
 * [فرع جديد]          dependabot/bundler/zendesk_api-3.1.1 --> origin/dependabot/bundler/zendesk_api-3.1.1
 + f4d832ec8...5aa0145f3 dependabot/npm_and_yarn/embroider-0ad991d471 --> origin/dependabot/npm_and_yarn/embroider-0ad991d471  (تحديث قسري)
 * [فرع جديد]          dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.0.0 --> origin/dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.0.0
 * [فرع جديد]          dependabot/npm_and_yarn/jspreadsheet-ce-5.0.3 --> origin/dependabot/npm_and_yarn/jspreadsheet-ce-5.0.3
 * [فرع جديد]          dependabot/npm_and_yarn/lint-fda1ac657e --> origin/dependabot/npm_and_yarn/lint-fda1ac657e
 + e46dc3798...d3420e3eb dependabot/npm_and_yarn/prosemirror-f8434604ae --> origin/dependabot/npm_and_yarn/prosemirror-f8434604ae  (تحديث قسري)
 * [فرع جديد]          dependabot/npm_and_yarn/puppeteer-core-24.15.0 --> origin/dependabot/npm_and_yarn/puppeteer-core-24.15.0
 + 4bcbc028d...03b9759db dev-floatkit-autocomplete-d-editor --> origin/dev-floatkit-autocomplete-d-editor  (تحديث قسري)
 + ea5bba76a...03b9759db dev-floatkit-autocomplete-d-editor-qa --> origin/dev-floatkit-autocomplete-d-editor-qa  (تحديث قسري)
 * [فرع جديد]          dev/decorate-cooked-state --> origin/dev/decorate-cooked-state
   56e6c9ae1..11c480f88  dev/no-more-widgets-smoke-test --> origin/dev/no-more-widgets-smoke-test
 * [فرع جديد]          dev/post-keep-detail-state --> origin/dev/post-keep-detail-state
 * [فرع جديد]          dev/prevent-rerenderings --> origin/dev/prevent-rerenderings
 * [فرع جديد]          dev/remove-redundant-staff-check-6 --> origin/dev/remove-redundant-staff-check-6
   1f3bbee91..00dfb95b1  dev/try-fix-flakys-tss  --> origin/dev/try-fix-flakys-tss
 * [فرع جديد]          dual-mode-palettes-wip  --> origin/dual-mode-palettes-wip
 * [فرع جديد]          feature/color-mode-preference --> origin/feature/color-mode-preference
 * [فرع جديد]          feature/type-upload-in-type-objects --> origin/feature/type-upload-in-type-objects
 * [فرع جديد]          feature/use-current-user-tz-instead-of-guess-local-dates --> origin/feature/use-current-user-tz-instead-of-guess-local-dates
 * [فرع جديد]          filter-tips-dmenu-martinwip --> origin/filter-tips-dmenu-martinwip
 * [فرع جديد]          filter-updates          --> origin/filter-updates
 * [فرع جديد]          fix-color-palette-dark  --> origin/fix-color-palette-dark
 * [فرع جديد]          fix/missing-user-custom-preferences-outlet-class-in-connector --> origin/fix/missing-user-custom-preferences-outlet-class-in-connector
 * [فرع جديد]          improve_no_database_error_patch --> origin/improve_no_database_error_patch
 * [فرع جديد]          improve_pg_adapter_new_client_error --> origin/improve_pg_adapter_new_client_error
 * [فرع جديد]          loic-pitchfork          --> origin/loic-pitchfork
 * [فرع جديد]          messages-dropdown-d-menu --> origin/messages-dropdown-d-menu
 * [فرع جديد]          my-pref-lang            --> origin/my-pref-lang
 * [فرع جديد]          notification-panel-refactor --> origin/notification-panel-refactor
 * [فرع جديد]          pinned-dmenu            --> origin/pinned-dmenu
 * [فرع جديد]          rollup-plugin-experiment --> origin/rollup-plugin-experiment
 * [فرع جديد]          rollup-theme-experiment-cross-theme-import --> origin/rollup-theme-experiment-cross-theme-import
 * [فرع جديد]          samsaffron/codex/convert-filter-tips-to-use-dmenu --> origin/samsaffron/codex/convert-filter-tips-to-use-dmenu
   8cb90072e..710d9fd41  sandbox/design-1        --> origin/sandbox/design-1
   1f97cf422..aa2fb29fa  sandbox/dev-xp-1        --> origin/sandbox/dev-xp-1
   817a743cb..3428acddc  sandbox/member-xp-1     --> origin/sandbox/member-xp-1
 + d182efe6f...a0aba00c7 sandbox/member-xp-2     --> origin/sandbox/member-xp-2  (تحديث قسري)
 * [فرع جديد]          source-identify-modulepreload --> origin/source-identify-modulepreload
 + 9aa6daa1f...c56258634 split-login-admin-settings --> origin/split-login-admin-settings  (تحديث قسري)
   a83bd0f67..41e1152f6  stable                  --> origin/stable
 + 293de3a75...e31549885 temp-user-creation-debug-logging --> origin/temp-user-creation-debug-logging  (تحديث قسري)
   43ddd4ef3..ea5b5b6c0  tests-passed            --> origin/tests-passed
 * [فرع جديد]          theme-upload-cleanup    --> origin/theme-upload-cleanup
 * [فرع جديد]          translations-from-crowdin-main --> origin/translations-from-crowdin-main
 + 9f8fd9214...c3562ed3a translations-from-crowdin-stable --> origin/translations-from-crowdin-stable  (تحديث قسري)
 + 4ffab7134...e211b4a55 unicode-mentions-in-composer-rte --> origin/unicode-mentions-in-composer-rte  (تحديث قسري)
 * [فرع جديد]          ux-footer-button-squish --> origin/ux-footer-button-squish
 * [فرع جديد]          ux-horizon-discotoc     --> origin/ux-horizon-discotoc
 * [فرع جديد]          ux-unify-appearance-filters --> origin/ux-unify-appearance-filters
   b0c2d83ec..045aefecb  ux/horizon-mobile-composer --> origin/ux/horizon-mobile-composer
 * [فرع جديد]          ux/sidebar-my-messages-enhancements --> origin/ux/sidebar-my-messages-enhancements
 + 28d11bbd0...6f7d9e816 variable-additions-2    --> origin/variable-additions-2  (تحديث قسري)
   39d2564ba..57dcfda6a  vite-squashed-rebased   --> origin/vite-squashed-rebased
I, [2025-07-28T12:19:43.174876 #1]  INFO -- : 
I, [2025-07-28T12:19:43.174943 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
      git pull
  else
      git -c advice.detachedHead=false checkout tests-passed
  fi
'
error: RPC failed; curl 56 Recv failure: Connection reset by peer
error: 5470 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
fatal: could not fetch bff89c0762e874ec88d553d89901dbda4fa89f20 from promisor remote
I, [2025-07-28T12:23:50.121438 #1]  INFO -- : 

أثناء محاولة السحب من GitHub، لا أرى أي نشاط على الإطلاق على المضيف في htop.

تفاصيل المضيف: آلة افتراضية Proxmox تعمل بنظام Debian 11، 4 أنوية، 12 جيجابايت من الذاكرة. يوجد وفرة من الذاكرة الحرة أثناء إعادة البناء، لذا لا ينبغي أن تكون المشكلة متعلقة بالذاكرة.
السيرفر مستضاف في ألمانيا، لذا لا ينبغي أن يكون هناك أي شيء يمنع الوصول إلى GitHub.
لقد وجدت أن:

fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

تشير إلى مهلة زمنية (timeout)، على سبيل المثال عندما يكون الاتصال بطيئًا جدًا. فحص سرعة الاتصال يظهر حوالي 890 ميجابايت/ثانية في الرفع والتنزيل. التخزين كله من نوع NVMe، لذا لا أرى أي سبب للمهلة الزمنية في هذه الخطوة.

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

كاد أن أنسى الإشارة إلى: عند التوجه إلى لوحة الإدارة (Admin Panel)، أحصل على معلومات مفادها أنني لست على أحدث إصدار، لكن النقر على Click here to update يؤدي إلى خطأ:

Server-Error
while loading /admin/docker/repos
Errorcode: 502 error

يمكنني رؤية أخطاء المهلة الزمنية هناك أيضًا:

activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:128:in `block in wait_poll' 
<internal:kernel>:187:in `loop'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:117:in `wait_poll' 
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:78:in `internal_poll' 
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:204:in `internal_poll' 
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:73:in `block in poll' 
/usr/local/lib/ruby/3.3.0/monitor.rb:201:in `synchronize'
/usr/local/lib/ruby/3.3.0/monitor.rb:201:in `mon_synchronize'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:82:in `synchronize' 
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:73:in `poll' 
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:868:in `acquire_connection' 
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:564:in `checkout' 
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection' 
activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection' 
activerecord-7.2.2.1/lib/active_record/transactions.rb:410:in `with_transaction_returning_status' 
activerecord-7.2.2.1/lib/active_record/transactions.rb:366:in `save!' 
activerecord-7.2.2.1/lib/active_record/suppressor.rb:56:in `save!' 
activerecord-7.2.2.1/lib/active_record/persistence.rb:55:in `create!' 
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:128:in `process_queue' 
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:77:in `worker_loop' 
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads' 

و

excon-1.2.5/lib/excon/socket.rb:386:in `select_with_timeout' 
excon-1.2.5/lib/excon/socket.rb:258:in `rescue in read_nonblock' 
excon-1.2.5/lib/excon/socket.rb:228:in `read_nonblock' 
excon-1.2.5/lib/excon/socket.rb:89:in `block in readline' 
<internal:kernel>:187:in `loop'
excon-1.2.5/lib/excon/socket.rb:78:in `readline' 
excon-1.2.5/lib/excon/response.rb:73:in `block in parse' 
<internal:kernel>:187:in `loop'
excon-1.2.5/lib/excon/response.rb:72:in `parse' 
excon-1.2.5/lib/excon/middlewares/response_parser.rb:7:in `response_call' 
excon-1.2.5/lib/excon/connection.rb:472:in `response' 
excon-1.2.5/lib/excon/connection.rb:297:in `request' 
/var/www/discourse/lib/discourse_updates.rb:136:in `new_features_payload' 
/var/www/discourse/app/jobs/scheduled/check_new_features.rb:24:in `execute' 
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform' 
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:299:in `each' 
/var/www/discourse/app/jobs/base.rb:299:in `perform' 
/var/www/discourse/app/jobs/base.rb:379:in `perform' 
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:137:in `process_queue' 
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:77:in `worker_loop' 
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads' 

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

لقد جربت أيضاً زيادة git http.postBuffer، والآن يتعطل لفترة أطول قليلاً قبل الفشل.

آمل أن يكون لدى شخص ما فكرة، حيث لم أستطع العثور على أي خيوط أو منشورات أخرى حول هذا النوع من الأخطاء.

شكراً!

هل لديك العديد من الإضافات في ملف app.yml الخاص بك؟ قد يكون من المفيد التعليق عليها جميعًا ومعرفة ما إذا كانت الأمور تعمل، وإذا كان الأمر كذلك، يمكنك البدء في التعليق عليها مرة أخرى.

نحن لا نستخدم العديد من الإضافات. لقد قمت بالفعل بإزالة تلك التي تم دمجها في النواة وفقًا لسجلات التغيير.

فقط هذه تم تعيينها حاليًا:

          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-translator.git
          - git clone https://github.com/discourse/onebox.git

لقد علقت هذه، لكنها لا تزال عالقة في نفس النقطة.

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

يبدو الأمر وكأنه مشكلة في المزود، أو ربما مشكلة في النواة. لكن ليس لدي دراية بتثبيت المطور.

يتم استضافته في Hetzner في ألمانيا، ولا يوجد شيء مميز في النواة، فقط debian 11 افتراضي في Kernel 5.10.237-1.

يشير DEV-Instance فقط إلى أنه مثيل الاختبار الخاص بنا لتجربة أشياء مثل التحديثات/الترقيات قبل القيام بها على إعداد الإنتاج الفعلي الخاص بنا للتأكد من أنها لا تكسر الإصدار المباشر. لذا فهو في الأساس مجرد نسخة طبق الأصل من نظامنا المباشر لتجربة الأشياء عليه.

أوه صحيح. إذا كان يعتمد على الحاوية المعتادة، وكان يواجه مشكلة في الاتصال، فأعتقد أن هذه ليست مشكلة في Discourse.

النواة الخاصة بك قديمة جدًا. أنا أعمل على Ubuntu 24.04 مع 6.8.0-53

تم بناء النواة في مايو 2025 وهي الحالية لـ Debian 11 التي لا تزال مدعومة بالكامل. شهران ليسا “قديمًا جدًا” حقًا.

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

كل شيء على المضيف يعمل، ولا توجد مشكلة في الاتصال بـ GitHub أو مواقع أخرى، حتى أن ترقية نظام كاملة تمت في غضون 5 دقائق ودون مشاكل. الشيء الوحيد الذي لا يعمل على هذا النظام هو Discourse - والذي كان يعمل قبل هذه الترقية لعدة سنوات الآن.

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

هذا غريب جداً. أحسنت في فحص النواة - كانت هناك حالات عدم توافق في إصدارات النواة ولكن من الواضح أن هذه ليست المشكلة.

يمكنك الحصول على سطر أوامر داخل الحاوية وربما تجربة بعض عمليات الشبكة (wget أو curl) ولكن لست متأكداً مما قد تثبته.

ليس لدي أي أفكار أخرى في الوقت الحالي، آسف.

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

لذا فإن التغييرات مثل git config http.postBuffer 524288000 من المحتمل ألا تؤثر على إعادة البناء إذا تم تغييرها على النظام المضيف.
وينطبق الشيء نفسه على إعدادات الضغط أو حدود ذاكرة Git.

سأتحقق مما إذا كان بإمكاني إعداد جديد على مضيف مشابه أو إذا فشل ذلك أيضًا بنفس الإصدار.

ربما يمكنك وضع بعض مواصفات الأوامر في ملف app.yml الخاص بك - انظر

لقد جربت ذلك الآن ولم يحدث أي تغيير للأسف. لست متأكدًا مما إذا كان الأمر يُنفذ قبل محاولة سحب/بناء الحاوية الفعلية.

سيتعين تشغيله فور البدء في (إعادة) البناء. أتوقع أن تعمل هذه الخطافات بعد سحب/بناء الموقع في /var/www/discourse، والذي لن يكتمل بالنسبة لي.

لقد نفدت أفكاري حقًا في هذه المرحلة..

تعديل: لذا حاولت تشخيص المشكلة من داخل الحاوية قيد التشغيل ويبدو أن هناك مشكلة أيضًا. محاولة استنساخ مستودع discourse docker تفشل هنا أيضًا:

root@community-app:/tmp# git clone https://github.com/discourse/discourse_docker.git
Cloning into 'discourse_docker'...
remote: Enumerating objects: 7235, done.
remote: Counting objects: 100% (234/234), done.
remote: Compressing objects: 100% (104/104), done.
error: RPC failed; curl 56 Recv failure: Connection reset by peer
error: 1355 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

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

سأقوم بتشخيص شبكة دوكر قليلاً، ربما أجد شيئًا هناك.

أوف، لقد اكتشفت الأمر أخيرًا. كانت المشكلة بالفعل مع دوكر (Docker) وشبكة المضيف (host network)، وليس مع ديسكورس (Discourse).

هيتزنر (Hetzner)، إذا كنت تشغل مفتاح شبكة افتراضي (vSwitch) مع شبكة فرعية عامة (public Subnet)، يتطلب تعيين MTU إلى 1400 بدلاً من 1500. لقد قمت بتغيير ذلك في مرحلة ما، ولكن يبدو أن هذا التغيير قد تم التراجع عنه في مرحلة ما. لذلك كان عليّ إعادة القيام بذلك وإعادة تشغيل دوكر (Docker) باستخدام MTU الصحيح.

الآن يعمل موقع التحديث (Update-Site) داخل ديسكورس (Discourse) أيضًا.

من المضحك كيف أن كل شيء آخر كان يعمل طوال الوقت.