كيفية تعديل Dockerfile؟

لديّ بعض حاويات Docker أخرى وأقوم بتشغيل خطوات مثل هذه:

# نسخ محتويات المجلد الحالي إلى الحاوية في /app
COPY html /usr/share/nginx/html/
COPY dim.local.crt /etc/nginx/ssl/
COPY dim.local.key /etc/nginx/ssl/
COPY nginx.conf /etc/nginx/
COPY default.conf /etc/nginx/sites-enabled/

# تثبيت أي حزم مطلوبة موضحة في requirements.txt
#RUN pip install -r requirements.txt

# هل يجب إعادة تشغيل nginx بعد أوامر COPY؟
RUN 

RUN apt-get update && \
    apt-get install -y nano && \
    rm -fr /var/lib/apt/lists/*

أحتاج إلى تنفيذ خطوات مشابهة لـ حاوية Discourse، لكن أين ملف Dockerfile؟ قرأت أنه ربما يمكنني إضافة هذه الخطوات في نهاية containers/app.yml، لكنني لست متأكدًا.

هل يمكن لأحد أن يشرح؟

هل يمكنك شرح ما تحتاجه بالضبط؟

لا داعي للتعامل مع ملف Docker لإضافة شهادة مخصصة، فلدينا دليل لذلك على Allow SSL / HTTPS for your Discourse Docker setup

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

تحتوي آخر 5 أسطر من ملف app.yml على مثال لتشغيل أوامر مخصصة، مثل إضافة:

- exec: curl example.com/script.sh | bash

سيتم تنزيل هذا السكربت وتنفيذه.

نعم، أرى ذلك، لكن في كل مرة أعيد فيها البناء، أواجه أخطاء نسخ:

## أي أوامر مخصصة للتشغيل بعد البناء
run:
  - exec: echo "بداية الأوامر المخصصة"
  ## إذا كنت ترغب في تعيين عنوان البريد الإلكتروني في حقل 'من' للتسجيل الأول، قم بإزالة التعليق عن السطر التالي وتغييره:
  ## بعد استلام أول بريد تسجيل، أعد وضع التعليق على السطر. فهو يحتاج إلى التشغيل مرة واحدة فقط.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  
  - exec: cp /shared/rr/run_badges.sh /etc/cron.d/.
  - exec: cp /shared/rr/badges /etc/cron.d/.
  - exec: echo "نهاية الأوامر المخصصة"

يرجى مشاركة سجل الأخطاء أيضًا.

يمكنني بالفعل سحبها من عنوان URL، هذه فكرة جيدة

الملفات موجودة بالفعل على المضيف:

# ls -al shared/rr/
badges         run_badges.sh
#

إليك الخطأ:

فشل
--------------------
خطأ تنفيذ Pups: فشل أمر cp /shared/rr/run_badges.sh /etc/cron.d/. مع إرجاع #<Process::Status: pid 1457 exit 1>
موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn'
فشل التنفيذ مع المعاملات "cp /shared/rr/run_badges.sh /etc/cron.d/."
e23ff12630c8058c4b36ee8673404dafbe6791ec61aa630f1224400eba4e75e0
** فشل التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الخطأ السابقة، قد يكون هناك أكثر من خطأ.
قد يساعد ./discourse-doctor في تشخيص المشكلة.

يتم ربط مجلد /shared داخل الحاوية، افتراضيًا، بـ /var/discourse/shared/standalone، لذا فأنت تفتقد إلى مجلد هناك.

ما الخطأ الذي أرتكبه @Falco

الأمر:

- exec: cp /shared/standalone/sql/run_badges.sh /root
Pups::ExecError: فشل أمر cp /shared/standalone/sql/run_badges.sh /root مع إرجاع #<Process::Status: pid 1728 exit 1>

في الواقع، هذا الحل يعمل بشكل ممتاز. شكرًا لك على ذكره.