فشل في التهيئة الأولية

لقد حاولت تثبيت Discourse، لكنني حصلت على خطأ “فشل في التمهيد” (FAILED TO BOOTSTRAP).
إليك السجل:

ENTER للمتابعة، 'n' للمحاولة مرة أخرى، Ctrl+C للخروج:
تمكين Let's Encrypt
تم تفعيل web.ssl.template.yml
تم تفعيل letsencrypt.ssl.template.yml

تم تحديث ملف الإعدادات في  بنجاح!

تم التحديث بنجاح. إعادة البناء خلال 5 ثوانٍ.
جاري بناء التطبيق
التأكد من أن المُشغّل (launcher) محدث
جاري جلب الأصل (origin)
المُشغّل محدث
cd /pups && git pull && /pups/bin/pups --stdin
محدث بالفعل.
I, [2020-07-24T18:55:58.464935 #1]  INFO -- : جاري تحميل --stdin
I, [2020-07-24T18:55:58.473367 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2020-07-24T18:55:58.506619 #1]  INFO -- : جاري توليد اللغات (قد يستغرق هذا بعض الوقت)...
تم اكتمال التوليد.

I, [2020-07-24T18:55:58.506995 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2020-07-24T18:55:58.509890 #1]  INFO -- :
I, [2020-07-24T18:55:58.510432 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-07-24T18:55:58.512373 #1]  INFO -- :
I, [2020-07-24T18:55:58.512886 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2020-07-24T18:55:58.515262 #1]  INFO -- :
I, [2020-07-24T18:55:58.515771 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2020-07-24T18:55:58.517798 #1]  INFO -- :
I, [2020-07-24T18:55:58.518308 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-07-24T18:55:58.520717 #1]  INFO -- :
I, [2020-07-24T18:55:58.521218 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2020/07/24 18:55:58 socat[26] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): لا يوجد ملف أو دليل
I, [2020-07-24T18:55:58.532831 #1]  INFO -- :
I, [2020-07-24T18:55:58.533118 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-07-24T18:55:58.535580 #1]  INFO -- :
I, [2020-07-24T18:55:58.535885 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-07-24T18:55:58.538318 #1]  INFO -- :
I, [2020-07-24T18:55:58.538610 #1]  INFO -- : > mkdir -p /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-07-24T18:55:58.540691 #1]  INFO -- :
I, [2020-07-24T18:55:58.541137 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-07-24T18:55:58.542920 #1]  INFO -- :
I, [2020-07-24T18:55:58.547145 #1]  INFO -- : ملف > /etc/service/postgres/run  chmod: +x  chown:
I, [2020-07-24T18:55:58.551140 #1]  INFO -- : ملف > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2020-07-24T18:55:58.555034 #1]  INFO -- : ملف > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2020-07-24T18:55:58.558937 #1]  INFO -- : ملف > /root/upgrade_postgres  chmod: +x  chown:
I, [2020-07-24T18:55:58.559391 #1]  INFO -- : > chown -R root /var/lib/postgresql/12/main
I, [2020-07-24T18:56:05.381806 #1]  INFO -- :
I, [2020-07-24T18:56:05.382562 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-07-24T18:56:05.385503 #1]  INFO -- :
I, [2020-07-24T18:56:05.385920 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2020-07-24T18:56:05.394083 #1]  INFO -- :
I, [2020-07-24T18:56:05.394491 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2020-07-24T18:56:05.396516 #1]  INFO -- :
I, [2020-07-24T18:56:05.396943 #1]  INFO -- : > /root/upgrade_postgres
I, [2020-07-24T18:56:05.403490 #1]  INFO -- :
I, [2020-07-24T18:56:05.403830 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2020-07-24T18:56:05.405807 #1]  INFO -- :
I, [2020-07-24T18:56:05.406414 #1]  INFO -- : استبدال data_directory = '/var/lib/postgresql/12/main' بـ data_directory = '/shared/postgres_data' في /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.407666 #1]  INFO -- : استبدال (?-mix:#?listen_addresses *=.*) بـ listen_addresses = '*' في /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.408137 #1]  INFO -- : استبدال (?-mix:#?synchronous_commit *=.*) بـ synchronous_commit = $db_synchronous_commit في /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.408917 #1]  INFO -- : استبدال (?-mix:#?shared_buffers *=.*) بـ shared_buffers = $db_shared_buffers في /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.409490 #1]  INFO -- : استبدال (?-mix:#?work_mem *=.*) بـ work_mem = $db_work_mem في /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.410066 #1]  INFO -- : استبدال (?-mix:#?default_text_search_config *=.*) بـ default_text_search_config = '$db_default_text_search_config' في /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.410701 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2020-07-24T18:56:05.414314 #1]  INFO -- :
I, [2020-07-24T18:56:05.414961 #1]  INFO -- : استبدال (?-mix:#?checkpoint_segments *=.*) بـ checkpoint_segments = $db_checkpoint_segments في /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.415521 #1]  INFO -- : استبدال (?-mix:#?logging_collector *=.*) بـ logging_collector = $db_logging_collector في /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.416016 #1]  INFO -- : استبدال (?-mix:#?log_min_duration_statement *=.*) بـ log_min_duration_statement = $db_log_min_duration_statement في /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.416731 #1]  INFO -- : استبدال (?-mix:^#local +replication +postgres +peer$) بـ local replication postgres  peer في /etc/postgresql/12/main/pg_hba.conf
I, [2020-07-24T18:56:05.417184 #1]  INFO -- : استبدال (?-mix:^host.*all.*all.*127.*$) بـ host all all 0.0.0.0/0 md5 في /etc/postgresql/12/main/pg_hba.conf
I, [2020-07-24T18:56:05.417700 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/12/bin/postmaster -D /etc/postgresql/12/main
I, [2020-07-24T18:56:05.418973 #1]  INFO -- : > sleep 5
2020-07-24 18:56:05.434 GMT [49] LOG:  0 8kB تقع خارج النطاق الصالح لمعلمة "shared_buffers" (16 .. 1073741823)
2020-07-24 18:56:05.435 UTC [49] FATAL:  ملف الإعدادات "/etc/postgresql/12/main/postgresql.conf" يحتوي على أخطاء
I, [2020-07-24T18:56:10.424189 #1]  INFO -- :
I, [2020-07-24T18:56:10.424518 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
createdb: خطأ: تعذر الاتصال بقاعدة البيانات template1: تعذر الاتصال بالخادم: لا يوجد ملف أو دليل
        هل يعمل الخادم محليًا ويقبل
        الاتصالات عبر منفذ Unix "/var/run/postgresql/.s.PGSQL.5432"؟
I, [2020-07-24T18:56:10.470398 #1]  INFO -- :
I, [2020-07-24T18:56:10.470767 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql: خطأ: تعذر الاتصال بالخادم: تعذر الاتصال بالخادم: لا يوجد ملف أو دليل
        هل يعمل الخادم محليًا ويقبل
        الاتصالات عبر منفذ Unix "/var/run/postgresql/.s.PGSQL.5432"؟
I, [2020-07-24T18:56:10.520451 #1]  INFO -- :
I, [2020-07-24T18:56:10.520909 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql: خطأ: تعذر الاتصال بالخادم: تعذر الاتصال بالخادم: لا يوجد ملف أو دليل
        هل يعمل الخادم محليًا ويقبل
        الاتصالات عبر منفذ Unix "/var/run/postgresql/.s.PGSQL.5432"؟
I, [2020-07-24T18:56:10.569147 #1]  INFO -- :
I, [2020-07-24T18:56:10.569513 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: خطأ: تعذر الاتصال بالخادم: تعذر الاتصال بالخادم: لا يوجد ملف أو دليل
        هل يعمل الخادم محليًا ويقبل
        الاتصالات عبر منفذ Unix "/var/run/postgresql/.s.PGSQL.5432"؟
I, [2020-07-24T18:56:10.624778 #1]  INFO -- :
I, [2020-07-24T18:56:10.625306 #1]  INFO -- : إنهاء العمليات غير المتزامنة


فشل
--------------------
Pups::ExecError: فشل الأمر su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' مع إرجاع #<Process::Status: pid 75 exit 2>
موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn'
فشل التنفيذ مع المعاملات "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
88ef1f69c68375f34f7ed80b11cbe2b1fac59a79a226118cb3205f0dc0ea5276
** فشل في التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الخطأ السابقة، فقد يكون هناك أكثر من خطأ.
قد يساعد ./discourse-doctor في تشخيص المشكلة.

يبدو أن الخطأ الرئيسي هو عدم القدرة على الاتصال بالخادم، لكنني لا أفهم الأمر تمامًا…
su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' psql: خطأ: تعذر الاتصال بالخادم: تعذر الاتصال بالخادم: لا يوجد ملف أو دليل هل يعمل الخادم محليًا ويقبل الاتصالات عبر منفذ Unix "/var/run/postgresql/.s.PGSQL.5432"؟

هل يمكن لأحد المساعدة؟
شكرًا لك

كم من ذاكرة الوصول العشوائي (RAM) لديك في هذا الخادم؟

1 جيجابايت.

هـمـم، هذا غريب حقاً.

نحسب حجم db_shared_buffers هنا:

لا أستطيع أن أفهم كيف تنتهي بقيمة 8 كيلوبايت فقط بعد ذلك.

هل يمكنك التحقق من قيمة ملف app.yml؟

بالتأكيد، أين يقع ملف app.yml، أو ما هو الأمر الذي يجب تنفيذه لعرضه (cat)؟

/var/discourse/containers/app.yml

وجدت أن nano أسهل في الاستخدام.

شكرًا لك.

@Falco، @IAmGav، إليك محتويات ملف app.yml:

## هذا هو قالب حاوية Docker المستقلة الشاملة لـ Discourse
##
## بعد إجراء أي تعديلات على هذا الملف، يجب عليك إعادة البناء
## /var/discourse/launcher rebuild app
##
## كُن *حذرًا للغاية* عند التعديل!
## ملفات YAML حساسة للغاية للأخطاء في المسافات البيضاء أو المحاذاة!
## قم بزيارة http://www.yamllint.com/ للتحقق من صحة هذا الملف حسب الحاجة

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"

## ما هي منافذ TCP/IP التي يجب أن تعرضها هذه الحاوية؟
## إذا كنت تريد لـ Discourse مشاركة منفذ مع خادم ويب آخر مثل Apache أو nginx،
## راجع https://meta.discourse.org/t/17247 للحصول على التفاصيل
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## قم بتعيين db_shared_buffers إلى حد أقصى 25% من إجمالي الذاكرة.
  ## سيتم تعيينه تلقائيًا بواسطة bootstrap بناءً على الذاكرة المكتشفة، أو يمكنك تجاوز ذلك
  db_shared_buffers: "0MB"

  ## يمكن أن يحسن أداء الفرز، لكنه يزيد من استخدام الذاكرة لكل اتصال
  #db_work_mem: "40MB"

  ## أي إصدار من Git يجب أن تستخدم هذه الحاوية؟ (الافتراضي: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## كم عدد طلبات الويب المتزامنة المدعومة؟ يعتمد على الذاكرة ونوى المعالج.
  ## سيتم تعيينه تلقائيًا بواسطة bootstrap بناءً على المعالجات المكتشفة، أو يمكنك تجاوز ذلك
  UNICORN_WORKERS: 0

  ## TODO: اسم النطاق الذي ستستجيب له هذه النسخة من Discourse
  ## مطلوب. لن يعمل Discourse مع عنوان IP مجرد.
  DISCOURSE_HOSTNAME: community.kodularlessons.net

  ## قم بإلغاء التعليق إذا كنت تريد تشغيل الحاوية بنفس
  ## اسم النطاق (خيار -h) المذكور أعلاه (الافتراضي "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: قائمة عناوين البريد الإلكتروني المفصولة بفواصل سيتم تعيينها كمسؤولين ومطورين
  ## عند التسجيل الأولي، مثال 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: '******s@gmail.com'

  ## TODO: خادم البريد SMTP المستخدم للتحقق من الحسابات الجديدة وإرسال الإشعارات
  ## عنوان SMTP واسم المستخدم وكلمة المرور مطلوبة
  ## تحذير: قد يتسبب الحرف '#' في كلمة مرور SMTP في حدوث مشاكل!
  DISCOURSE_SMTP_ADDRESS: mboxhosting.com
  DISCOURSE_SMTP_PORT: 993
  DISCOURSE_SMTP_USER_NAME: no-reply@kodularlessons.net
  DISCOURSE_SMTP_PASSWORD: "*****************"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (اختياري، الافتراضي true)

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

  ## عنوان CDN http أو https لهذه النسخة من Discourse (مُهيأ للسحب)
  ## راجع https://meta.discourse.org/t/14857 للحصول على التفاصيل
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

## حاوية 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/docker_manager.git

## أي أوامر مخصصة للتشغيل بعد البناء
run:
  - exec: echo "Beginning of custom commands"
  ## إذا كنت تريد تعيين عنوان البريد الإلكتروني 'من' للتسجيل الأول، قم بإلغاء التعليق وتغيير:
  ## بعد الحصول على بريد التسجيل الأول، أعد التعليق على السطر. يجب تشغيله مرة واحدة فقط.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.                                                                                               org'"
  - exec: echo "End of custom commands"

ملاحظة: قمت بإخفاء المعلومات الخاصة يدويًا.

لا ينبغي أن يكون صفرًا

تغييره إلى

db_shared_buffers: “128MB”

شكرًا لك، امنحني لحظة بينما أقوم بتغييره.

اختفى منشوري لأنه سقط في فلتر البريد المزعج، على أي حال سأقوم بلصق السجل الجديد على Pastebin.

بعد إجراء التغييرات على ملف yml، قم بتشغيل الأمر التالي.

./launcher rebuild app

شكرًا لك، كما أنه يعيد خطأ فشل في التمهيد، انظر السجل:

يواجه بعض المشكلات المتعلقة بـ shared_buffers و PostgreSQL.

ما الذي يعمل أيضًا على هذه النسخة؟

لا يوجد شيء آخر يعمل على الآلة الافتراضية (أعتقد)…
لقد اشتريتها من Azure