يخرج الموقع تلقائيًا من وضع القراءة فقط عند تمكينه بواسطة 'discourse enable_readonly'

مرحباً يا رفاق،

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

عندما قمت بتمكين وضع القراءة فقط باستخدام:
docker exec app discourse enable_readonly
أو

./launcher enter app
discourse enable_readonly

بعد حوالي 1:20، يخرج الموقع من وضع القراءة فقط بنفسه.

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

أي أفكار؟

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

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

مرحباً ليلي،

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

لقد جربت tail -f على:

/var/discourse/shared/standalone/log/rails/unicorn.stdout.log
/var/discourse/shared/standalone/log/rails/unicorn.stderr.log
/var/discourse/shared/standalone/log/rails/production_errors.log
/var/discourse/shared/standalone/log/rails/production.log
/var/discourse/shared/standalone/log/rails/sidekiq.log
/var/discourse/shared/standalone/log/var-log/redis/current

انتظرت الحدث ليحدث أثناء متابعة السجلات ولكنني لم أر شيئاً لافتاً للنظر.

من الغريب بالنسبة لي أنه يعمل بشكل مثالي عند تفعيله عبر واجهة المستخدم الرسومية للويب ولكن ليس عبر سطر الأوامر.

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

إنها دائمًا حالة طوارئ عندما يحدث ذلك ولم أتحقق من المشكلة المحتملة.

على سبيل المثال، في أدوات Ansible الخاصة بي، لا أستخدم وضع القراءة فقط، ولكني أستخدم Introducing Post Deployment Migration

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

شكرًا جاي. أظن أنني أتبع نهج XY للمشكلة. سألقي نظرة على ترحيل ما بعد النشر. شكرًا على ذلك.

أعتقد أن الخيار الآخر قد يكون تفعيل RO عبر استدعاء API.

- name: post migrations
  shell: "docker exec  {{ discourse_yml }} bash -c 'rake db:ensure_post_migrations db:migrate'"
  become: yes

لذلك قد يعمل هذا في الوضع للقراءة فقط:

- name: post migrations
  shell: "docker exec  {{ discourse_yml }} bash -c 'echo Discourse.enable_readonly_mode | rails c'"
  become: yes

شكرا لك، أقدر ذلك كثيراً. سأجرب هذا الليلة.

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

هل الفرق يرجع إلى وضع القراءة فقط الذي تستخدمه؟

3 إعجابات

شكراً JammyDodger! كانت المعلومات والرابط مفيدة جداً. لست متأكداً مما يشكل إعادة تشغيل حاوية - على حد علمي، فإن حاويتي لا تعيد التشغيل كل ~1:30، وهي المدة التي يظل فيها وضع RO ممكّناً عند استخدام discourse enable_readonly أي Discourse.enable_readonly_mode(Discourse::READONLY_MODE_KEY)

ومع ذلك، يمكنني التأكيد على أن Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY) “تلتزم” إلى أجل غير مسمى، وهو ما كنت أحاول تحقيقه :+1:

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

للاكتفاء الذاتي:

- name: Set read-only mode for live forum host
  ansible.builtin.shell: |
      docker exec app bash -c 'echo Discourse.enable_readonly_mode\(Discourse::USER_READONLY_MODE_KEY\) | rails c'
  register: enable_readonly_output
إعجابَين (2)

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