بعد الترقية، docker: local_discourse/app ليس عنوان MAC صالحًا

بعد الترقية بواسطة:

git pull
./launcher rebuild app

الخدمة لا تبدأ حتى مع ./launcher start app

أتلقى خطأ متعلقًا بعنوان mac ولا يوجد عنوان mac في سطر الأوامر:

#  ./launcher start app
x86_64 arch detected.

+ /data/docker-discourse/docker run --shm-size=512m -d --restart=always -h myhost-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t --mac-address local_discourse/app /sbin/boot
docker: local_discourse/app is not a valid mac address.
See 'docker run --help'.

كيف يمكنني إصلاح ذلك؟

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

ما هو اسم المضيف الخاص بالمضيف الخاص بك؟

اسم المضيف هو myhost.

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

غريب، يجب أن يعيّن اسم المضيف هذا عنوان MAC على 02:e0:04:92:ec:9a.

على أي حال، يمكنك استخدام ./launcher start app --skip-mac-address لتجاوزه إذا كنت لا ترغب في تصحيح الأخطاء بشكل أكبر.

إعجابَين (2)

لا أعرف لماذا لم تتم إضافة عنوان MAC.
لقد قمت بتشغيل ./launcher start app --skip-mac-address
لا يوجد خطأ ولكن يبدو أنه لم يتم إدراج أي منفذ، لذا لا يمكن الوصول إلى التطبيق:

CONTAINER ID   IMAGE                            COMMAND                  CREATED          STATUS          PORTS                                                                                                                                                          NAMES
7f269e451af9   local_discourse/app              \"/sbin/boot\"             28 seconds ago   Up 28 seconds                                                                                                                                                                  app

هل يمكنك مشاركة ملف app.yml الخاص بك (باستثناء البيانات الشخصية/كلمات المرور)؟

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

بالتأكيد، لقد نسخت أدناه محتوى containers/app.yml بعد استبدال بعض المعلومات السرية بـ xxxxx.

## هذا هو قالب حاوية 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:
  - "127.0.0.1:8009:80"   # http
#  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

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

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

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

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

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

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

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

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

  ## TODO: خادم البريد SMTP المستخدم للتحقق من الحسابات الجديدة وإرسال الإشعارات
  # عنوان SMTP واسم المستخدم وكلمة المرور مطلوبة
  # تحذير الحرف '#' في كلمة مرور SMTP يمكن أن يسبب مشاكل!
  DISCOURSE_SMTP_ADDRESS: mail.xxxxxxxxx.xxx
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: contact@xxxxxxxxx.xxx
  DISCOURSE_SMTP_PASSWORD: "xxxxxxxxxxxx"
  #DISCOURSE_SMTP_ENABLE_START_TLS: 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: /data/hosting/data-discourse
      guest: /shared
  - volume:
      host: /data/hosting/data-discourse/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"
إعجاب واحد (1)

هل يمكنك محاولة تغيير ذلك إلى:

expose:
  - "8009:80"   # http

هل تقوم بتشغيل وكيل عكسي إضافي على المضيف؟ في هذه الحالة، قد تفضل الاستماع إلى مقبس يونكس (unix socket) عن طريق إضافة web.socketed.template.yml في قائمة القوالب في الأعلى.

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

لقد قمت بتغيير الإكسبوز وإعادة البناء ولكن لا تزال المشكلة كما هي.
أقوم بتشغيل Haproxy كوكيل عكسي للتعامل مع اتصال HTTPS بـ Discourse. إنه يعمل كما هو لأكثر من عامين مع العديد من الترقيات بالفعل.

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