Launcher run app يعطي خطأ عند محاولة النسخ الاحتياطي

هذا يعطيني أخطاء فقط، عند بدء تشغيل Redis.

/var/discourse/launcher run app "echo 'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run' | rails c"

إذا اتبعت مسار rails c، فإن النسخ الاحتياطي يعمل. ولكن يجب أن يعمل هذا السطر الواحد أيضًا - أو هل كان يعمل في عام 2020 (أم كان -22…)

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

مجرد ربط مرجعي (من عام 2020) في حال كان يجب تحديثه:

هل تقصد الاتصال بـ redis؟ ما هو الخطأ الفعلي الذي تراه؟

launcher run app يقوم بتشغيل أمر في سياق حاوية جديدة، لذلك لن يعمل redis. سينجح هذا فقط إذا كان redis خارجيًا.

يجب أن يعمل ما يلي لأنه يعمل في سياق الحاوية الحالية:

docker exec -i app rails c <<<'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run'

لماذا تفعل ما سبق بدلاً من الأمر الأبسط discourse backup --sql-only؟

يمكنك أيضًا إخبار Discourse باستخدام S3 مباشرة كموقع للنسخ الاحتياطية، إذا أردت.

إعجابَين (2)

لأن Docker والحاويات أماكن مروعة، حيث لا يعمل شيء، مثل crontab و nano :joy: أعرف، نوعًا ما، ما أفعله عندما أرى /var/discourse ولكن بعد ./launcher enter app أضيع تمامًا. لهذا السبب يقوم خادم Mastodon الخاص بي بعمل نسخ احتياطي لنفسه، ولكن Discourse لا يقوم بذلك (حسنًا، مرة واحدة في اليوم نعم، ولكن لا يزال).

نعم، أعرف أن discourse backup يفعل ما أريده، بل إنه يرسل التفريغ إلى S3، لكنني لا أعرف كيف أحدد وقته - بسبب هذا الشيء المروع والمخيف للحاوية، وهو نظام تشغيل داخل نظام تشغيل.

لديك مجدول خارج الحاوية متاح، صحيح؟

يمكنك جدولته هناك، على سبيل المثال:

# ضعه في جدول cron الخاص بالمضيف
# تشغيل النسخ الاحتياطي مرة كل 4 ساعات في الساعة
0 */4 * * * docker exec app discourse backup --sql-only
5 إعجابات

كان الأمر سهلاً لدرجة أنه كان شبه أكبر خيبة أمل في اليوم. والآن لدي أداة awscli واحدة عديمة الفائدة تمامًا.

docker exec هو المفتاح هنا… الآن لدي شيء واحد قوي للبدء في البحث عنه.

شكرًا!

3 إعجابات

أوه نعم… هذا الخطأ:

Couldn't connect to Redis
bundler: failed to load command: pry (/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/pry)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection': Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED) (Redis::CannotConnectError)

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

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