فشل Discourse-setup عندما تحاول pups إنشاء رابط رمزي

أحاول تثبيت discourse على خادم fedora-coreos الخاص بي، ولكني لا أحقق نجاحًا كبيرًا. كان عليّ أولاً إنشاء دليل /var/shared/ وتحديث القوالب لتعكس ذلك، حيث أن / غير قابل للتغيير على coreos. ينجح هذا ويأتي قاعدة البيانات، ولكن بعد ذلك يفشل pups عند محاولة إنشاء رابط رمزي مع الخطأ التالي:
Pups::ExecError: cd /var/www/discourse && bash -c "ln -s /var/shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log" failed with return #<Process::Status: pid 241 exit 1>
لقد حاولت إنشاء دليل /var/www/ وتعيين أوسع الأذونات فقط لمعرفة ما إذا كان ذلك سيساعد. قد يكون المستخدم خاطئًا. لاحظت وجود عبارة chown مع مستخدم ‘discourse’، ولكني أعتقد أن هذا ربما يكون داخل حاوية. لقد حاولت إنشاء /var/shared/ و /var/www/ مع مستخدم عادي كمالك، ولكني أعتقد أن هذا ربما يكون خاطئًا أيضًا لأن discourse-setup يعمل كـ root.
أنا أستخدم podman أكثر من docker، لذلك ربما أرتكب خطأ آخر. لقد قمت بتعطيل selinux لمعرفة ما إذا كان ذلك سيساعد.
كل المساعدة موضع تقدير كبير… :slight_smile:

تعديل.
السجلات أدناه

cd /var/www/discourse && bash -c "ln -s /var/shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
ln: فشل في إنشاء رابط رمزي '/var/www/discourse/log/production.log': الملف موجود بالفعل
ln: فشل في إنشاء رابط رمزي '/var/www/discourse/log/production_errors.log': الملف موجود بالفعل
ln: فشل في إنشاء رابط رمزي '/var/www/discourse/log/unicorn.stdout.log': الملف موجود بالفعل
ln: فشل في إنشاء رابط رمزي '/var/www/discourse/log/unicorn.stderr.log': الملف موجود بالفعل
ln: فشل في إنشاء رابط رمزي '/var/www/discourse/log/sidekiq.log': الملف موجود بالفعل
I, [2025-06-15T16:41:06.444013 #1]  INFO -- :
I, [2025-06-15T16:41:06.445624 #1]  INFO -- : إنهاء العمليات غير المتزامنة
I, [2025-06-15T16:41:06.445825 #1]  INFO -- : إرسال INT إلى HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main pid: 42
I, [2025-06-15T16:41:06.446165 #1]  INFO -- : إرسال TERM إلى exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 91
2025-06-15 16:41:06.446 UTC [42] LOG:  تلقى طلب إيقاف سريع
91:signal-handler (1750005666) Received SIGTERM scheduling shutdown...
91:M 15 Jun 2025 16:41:06.451 # User requested shutdown...

ينبع الخطأ من محاولة إنشاء روابط رمزية لملفات السجل، ولكن الملفات بهذه الأسماء موجودة بالفعل

قبل تشغيل discourse-setup، قم بإزالة الملفات مثل production.log و production_errors.log وما إلى ذلك في /var/www/discourse/log. هذا يسمح لأوامر إنشاء الروابط الرمزية بالنجاح.
مثال:

rm /var/www/discourse/log/production.log
rm /var/www/discourse/log/production_errors.log
rm /var/www/discourse/log/unicorn.stdout.log
rm /var/www/discourse/log/unicorn.stderr.log
rm /var/www/discourse/log/sidekiq.log

ثم، أعد تشغيل الإعداد.

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