كيفية إيقاف S3 storage؟

مرحبًا @Pravi

إليك ما طلبته، خصيصًا لك…

يوجد هذا الملف داخل الحاوية.

ستجد هذا الملف وملفات الإعدادات الأخرى هنا:

# docker exec -it app bash
# cd /var/www/discourse/config

أوصي بشدة ألا تقوم بتعديل أي من هذه الملفات إلا إذا كنت فعليًا تعرف ما تفعل.

ومع ذلك، فمن الرائع بالتأكيد قراءتها وفهمها.

لكنني لا أستطيع العثور على ملف discourse.config داخل الحاوية. لدي فقط ملف app.yml في مجلد الحاوية.

مجلد الحاوية الذي تتحدث عنه ليس هو الحاوية نفسها.

الحاوية هي بنية Docker يتم بناؤها وتشغيلها لتعمل كحاوية Docker.

بالمناسبة، لا تأخذ هذا بشكل خاطئ، لكن هل تفهم ما هي حاوية Docker؟ لا بأس على الإطلاق إذا لم تفهم، بالمناسبة. يستخدم الكثير من الناس Discourse يوميًا ولم يتعلموا بعد أساسيات حاويات Docker. لم يفت الأوان أبدًا للتعلم :slight_smile:

مرجع:

ملاحظة: @Pravi. لقد زودتك بالكود للدخول إلى الحاوية والتبديل إلى المجلد الذي يحتوي على ملف الإعدادات. هل فكرت في اتباع الكود الذي نشرته؟

ملاحظة 2: مهمة rake التي تواجه صعوبة فيها (migrate_from_s3) يمكن العثور عليها هنا:

ليس لدي الكثير من المعرفة حول ديسكورش.

نعم، لقد وجدت تلك الملفات.

كيف يمكنني استكشاف المشكلة من كود الـ Rake؟

مرحبًا @Pravi،

إحدى الطرق هي مراجعة سجلات ملف السجل (log file) مباشرةً قبل ظهور رسالة الخطأ، ومحاولة تحديد السطر (أو الأسطر) في ملف مهمة Rake؛ ثم محاولة عزل السبب الدقيق للمشكلة.

غالبًا ما تكون الحلول هي الجزء السهل. أما الجزء الصعب فهو اكتشاف ماهية المشكلة نفسها.

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

مرحبًا @Pravi

أصبحت هذه درسًا في استكشاف أخطاء البرمجيات الأساسية وإصلاحها… وهو أمر جيد.

لديك بالفعل معلومات التسجيل في منشورك رقم 4 في هذا الموضوع:

هناك الكثير من المعلومات هناك.

لديك أيضًا كود Ruby الكامل لمنصة Discourse الخاص بمهمة rake هذه، أعلاه.

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

أتمنى أن يكون هذا مفيدًا.

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

root@ip-172-31-7-247:/var/discourse# ./launcher enter app
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_to_s3
rake aborted!
FileStore::ToS3MigrationError: يرجى توفير متغيرات البيئة التالية:
  - DISCOURSE_S3_BUCKET
  - DISCOURSE_S3_REGION
  وأحد الخيارات التالية:
  - DISCOURSE_S3_ACCESS_KEY_ID
  - DISCOURSE_S3_SECRET_ACCESS_KEY
  أو
  - DISCOURSE_S3_USE_IAM_PROFILE
/var/www/discourse/lib/file_store/to_s3_migration.rb:38:in `s3_options_from_env'
/var/www/discourse/lib/tasks/uploads.rake:237:in `create_migration'
/var/www/discourse/lib/tasks/uploads.rake:245:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:224:in `block in migrate_to_s3_all_sites'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:68:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:78:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:222:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:218:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => uploads:migrate_to_s3
(انظر التتبع الكامل بتشغيل المهمة مع --trace)

تحديث:

لقد أضفت جميع متغيرات البيئة التالية DISCOURSE_S3_BUCKET، وDISCOURSE_S3_REGION، وDISCOURSE_S3_ACCESS_KEY_ID، وDISCOURSE_S3_SECRET_ACCESS_KEY إلى ملف app.yml، وتم حل المشكلة المذكورة أعلاه. الآن أستطيع الترحيل إلى S3، لكن لا أستطيع الترحيل من S3. يطلب مني إيقاف تحميل S3 على الرغم من أنني أضفت DISCOURSE_USE_S3: false في ملف app.yml.

كيف يمكنني التأكد من إيقاف تحميل S3؟

[5] pry(main)> SiteSetting.enable_s3_uploads
=> false
[6] pry(main)> GlobalSetting.use_s3
=> false
[7] pry(main)> GlobalSetting.use_s3?
=> true

مرحبًا @Pravi

أنا أسلم العصا للنقاش الرائع حول هذا الموضوع، في موضوع فريق الميتا هذا:

هناك نقاشات مفصلة للغاية هناك.

كل التوفيق… وأتمنى أن يكون هذا مفيدًا.