يفشل Docker أحيانًا في الاتصال بـ github.com

أثناء محاولة ترقية Discourse عبر ./launcher rebuild app، أواجه مشكلة مع

fatal: unable to access 'https://github.com/discourse/REPO.git/': Failed to connect to github.com port 443: Connection timed out

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

لقد رأيت هذا

ولكنني لا أعرف كيفية تصحيح شبكة الحاوية.

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

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

# cd /var/discourse/
# ./launcher enter app
تم اكتشاف بنية x86_64.
# wget -O - -v https://github.com/discourse/logster.git/ |wc
--2023-01-04 15:30:25--  https://github.com/discourse/logster.git/
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/discourse/logster/ [following]
--2023-01-04 15:30:25--  https://github.com/discourse/logster/
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘STDOUT’

-                                                  [ <=>                                                                                                 ] 231.22K  --.-KB/s    in 0.06s   

2023-01-04 15:30:26 (3.99 MB/s) - written to stdout [236767]

   2751   15860  236767
#

نرى أن “github.com” تم ترجمته إلى عنوان IP معقول، وتم الاتصال به، وأعاد بعض البيانات. في الواقع، تصرف الأمر الذي تم تشغيله داخل الحاوية بشكل كبير مثلما يتصرف خارج الحاوية، وهذا متوقع.

هل تستخدم وصفة تثبيت مدعومة، على شركة استضافة معروفة؟

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

المحاولة الأولى أعطت

Connecting to github.com (github.com)|140.82.121.4|:443... failed: Connection timed out.
Retrying.

طريقة التثبيت الافتراضية

يعتمد على كيفية تعريفك لـ “معروفة”، ولكن هذه شركة كبيرة إلى حد ما

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

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

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

إنها مشكلة خاصة بالحاوية. أواجه صعوبة في فهم ما الذي يمكن أن يكون قد تسبب في ذلك حيث لم أقم بتعديل الحاوية من قبل والموقع عمره حوالي 1.5 سنة.

حسنًا، إذًا، خارج الحاوية، هل يمكنك تشغيل هذا الاختبار بشكل موثوق؟

ربما يمكنك مشاركة نسخة منظفة من ملف app.yml الخاص بك؟ (ليس لدي أي فكرة عما قد يحدث، ولكن ربما يلاحظ شخص ما شيئًا ما.)

كم عمر التثبيت الحالي - ما هو الإصدار وما هو المعرف الخاص به، وفقًا للوحة التحكم الخاصة بك؟

[quote=“Ed S, post:6, topic:250643, username:Ed_S”]هل يمكنك تشغيل هذا الاختبار بشكل موثوق؟
[/quote]

نعم

[quote=“Ed S, post:6, topic:250643, username:Ed_S”]هل يمكنك مشاركة نسخة منظفة من ملف app.yml الخاص بك؟
[/quote]

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## قم بإلغاء التعليق على هذين السطرين إذا كنت ترغب في إضافة Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"
  db_shared_buffers: "128MB"
  #db_work_mem: "40MB"
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en
  UNICORN_WORKERS: 2
  DISCOURSE_HOSTNAME: domain.example.com

  #DOCKER_USE_HOSTNAME: true

  DISCOURSE_DEVELOPER_EMAILS: 'some@emails.com'

  DISCOURSE_SMTP_ADDRESS: smtp.domain.com
  DISCOURSE_SMTP_PORT: port
  DISCOURSE_SMTP_USER_NAME: email@email.com
  DISCOURSE_SMTP_PASSWORD: "password"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)
  DISCOURSE_SMTP_DOMAIN: domain.com
  DISCOURSE_NOTIFICATION_EMAIL: email@email.com

  ## إذا أضفت قالب Lets Encrypt، قم بإلغاء التعليق أدناه للحصول على شهادة SSL مجانية
  LETSENCRYPT_ACCOUNT_EMAIL: email@email.com

  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## الحاوية Docker عديمة الحالة؛ يتم تخزين جميع البيانات في /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## الإضافات هنا
## انظر https://meta.discourse.org/t/19157 للحصول على التفاصيل
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/discourse-math.git
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/discourse/discourse-assign.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/discourse/discourse-akismet.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-gamification
          - git clone https://github.com/discourse/discourse-checklist
          - git clone https://github.com/discourse/discourse-footnote
          - git clone https://github.com/discourse/discourse-yearly-review
          - git clone https://github.com/discourse/discourse-encrypt.git

## أي أوامر مخصصة لتشغيلها بعد البناء
run:
  - exec: echo "Beginning of custom commands"
  - exec: echo "End of custom commands"

ملاحظة: لقد حاولت بناء التطبيق بدون أي إضافات. إما أنه يفشل في جلب discourse نفسه أو يفشل في استنساخ الإضافة الثالثة أو الرابعة في القائمة (مما يعني أنه مع 2-3 إضافات فقط يمكنني بناء تطبيق من المحاولة الثالثة إلى الرابعة).

[quote=“Ed S, post:6, topic:250643, username:Ed_S”]ما هو عمر التثبيت الحالي - ما هو الإصدار وما هو المعرف الخاص به؟
[/quote]
كان 2.9.0.beta14 قبل أن أحاول الترقية إلى 3.0.0.beta15، لا أتذكر المعرف المحدد ولكن آخر مرة تمت ترقيته كانت في وقت ما بين 25-26 ديسمبر.

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

من المحتمل أن يستغرق استكشاف الأخطاء وإصلاحها معصوب العينين وقتًا أطول بكثير.

4 إعجابات

لم يكن الأمر أنني كنت أحاول الحد من المعلومات المتاحة، بل كان الأمر يتعلق بما إذا كان الاسم سيخبرك بأي شيء نظرًا لأنه ليست شركة غربية. تم استضافة المثيل بواسطة reg.ru، أكبر مستضيف في روسيا. على أي حال، لم يكن دعمهم هذه المرة[1] مفيدًا أيضًا، لذلك نقلت موقعي إلى digital ocean. بنفس الإعدادات، نفس الإجراء المستخدم لتثبيت docker، كل شيء سار على ما يرام (ويبدو أنه يعمل) بشكل جيد.


  1. عادة ما يكون جيدًا إلى حد ما ↩︎

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.