ae
שפה
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
ترجمة AI
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

كيفية إنشاء صورة Docker مخصصة لـ Redmine الخاص بك

12/16/2023
דקות 8
لوكاس بينا
Redmine هو أحد أشهر الأدوات لإدارة المشاريع وتتبع المشكلات. إذا قمت بتجربته أو كان عليك تثبيته في بيئة إنتاجية، فمن المحتمل أنك تعلم أيضًا أن هناك صورة Docker رسمية تسهل بشكل كبير التثبيت والتوسع للبيئات ذات الطلب العالي.

Redmine قبل التخصيص

הערה: يمكن العثور على Docker الأصلي لـ Redmine على https://hub.docker.com/_/redmine. هنا يمكنك أيضًا العثور على تعليمات جيدة حول كيفية ملء قاعدة بيانات خارجية وتركيب مجلدات خارجية (لتمكين تثبيت المكونات الإضافية).

إذا كنت مثلي وتفضل أن ترى مباشرةً الشفرة لبناء صورة Redmine Docker مخصصة ، يمكنك الانتقال إلى github.com/lcofre/redmine والتحقق من Dockerfile.

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

لأسباب بساطة ، لن نستخدم قاعدة بيانات خارجية ولكن قاعدة بيانات داخلية في حاوية Redmine نفسها. ومع ذلك ، فمن المستحسن إعداد حاوية تخزين مخصصة لبيئة الإنتاج.


المكونات الإضافية والسمات

اخترنا بعض المكونات الإضافية والسمات لتوضيح الطرق المتنوعة لإضافتها إلى Redmine:

  • إخفاء الشريط الجانبي ، وهو مكون إضافي يسمح بمزيد من مساحة الشاشة ، خاصة عند كتابة المشكلات
  • הדבק מהלוח ، لإرفاق لقطات الشاشة عن طريق لصق من الحافظة بدلاً من تحديد ملف
  • A1 و גיטמייק ، سمتان لتغيير مظهر واجهة المستخدم

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


كتابة ملف Dockerfile

ملف Dockerfile هو وصفة لكيفية بناء صورة Docker. أول حقيقة سنتعلمها هنا هي أنه يجب أن نستند صورتنا إلى صورة أخرى ، لذا سنستخدم الصورة الرسمية لـ Redmine

עם Redmine

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

עם Redmine:4.1.0


استخدام Git للحصول على المكونات

في معظم الحالات، تحتوي السمات والمكونات الإضافية على مستودعات Git حيث يمكننا تنزيل أحدث الشفرات. هذا هو الحال للمكونات الثلاثة التالية.

تأتي صورة Redmine الأساسية بدون Git، ولكن يمكننا إضافتها إلى الصورة بهذه الطريقة

הפעל התקנת GIT

سيتم تنفيذ هذا عند بناء الصورة وسيسمح لك باستخدام Git في التعليمات التالية.

سمة Gitmike: يوصون بنسخ مستودعهم مباشرة

הפעל שיבוט git https://github.com/makotokw/redmine-theme-gitmike.git ציבור / נושאים / gitmike

سيقوم السطر بحفظ المشروع المستنسخ في المجلد المناسب public/themes

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

הפעל שיבוט git https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide

הדבק תמונה של הלוח: يبدو أن هذا هو الإجراء النموذجي أيضًا، قم بنسخ المستودع وستكون على ما يرام

הפעל שיבוט git https://github.com/RubyClickAP/clipboard_image_paste.git plugins / clipboard_image_paste

אבל אם قرأت المزيد سترى أنه "يُوصى بتثبيت حزمة RMagick gem، وإلا فلن يتم عرض الصور المرفقة في ملفات PDF المصدرة". فكيف يمكننا القيام بذلك؟ يجب أن يكون الأمر سهلاً مثل

הפעל פנינה להתקין

ولكن ربما تعلم أنه يجب بناء الحزمة قبل أن يتم تثبيتها، لذا يجب عليك تثبيت بعض الحزم قبل تثبيت الحزمة. السطر الذي تحتاجه حقًا هو

RUN apt להתקין -ה build-חיוני imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       & & פנינה להתקין rmagick

كل ذلك في أمر واحد، مفصول على سطرين لسهولة القراءة.

المؤلف الأصلي لهذا المكون الإضافي لا يوفر إصدارًا لـ Redmine 4، ولكن البحث عن اسم المكون الإضافي في GitHub أدى بي إلى مشروع يفعل ذلك: הדבק RubyClickAP / clipboard_image_paste.


إضافة مكون إضافي أو سمة من مصدر تم تنزيله

תְכוּנָה A1 هي مثال جيد لتوضيح الحالات التي تحتوي فيها على المصدر، ولكن ليس لديك عنوان URL لتنزيله أثناء عملية البناء. إحدى الخيارات في مثل هذه الحالات هو توفير المصدر لعملية البناء. بهذه الطريقة يتم إضافة المحتوى إلى الصورة دون تنزيله

COPY a1 ציבורי / נושאים / a1

يتطلب ذلك وجود مجلد a1 في نفس المكان الذي يوجد فيه ملف Dockerfile.

الآن أنت جاهز لبناء صورتك، لذا افتح الطرفية حيث يوجد ملف Dockerfile الخاص بك وقم بتنفيذ

docker build - my-redmine.

بمجرد الانتهاء من البناء، يمكنك تشغيل الصورة الخاصة بك باستخدام

docker run -it -p 3000: 3000 - שם my-redmine my-redmine

انتقل إلى http://localhost:3000 لرؤية Redmine المخصص الخاص بك!

Redmine بعد التخصيص


بعض النصائح لإضافة المزيد من المكونات الإضافية

لتجربة المكونات الإضافية الجديدة، من الأفضل دائمًا استخدام حاوية Redmine جديدة. هذا هو كيف أدركت أن rmagick يتطلب تثبيت بعض الحزم. أولاً، قم بتشغيل نسخة قابلة للتجاهل من Redmine باستخدام

הפעלת docker - rm -d -p 3000: 3000 - name test-redmine redmine

ثم ادخل إلى النسخة باستخدام

מבצעים של דוקר - מבחן redmine bash

هنا يمكنك تثبيت حزم النظام الأساسية، وحزم الجواهر، أو تشغيل الترحيلات. فقط تذكر الخطوات حتى تتمكن من إضافتها إلى Dockerfile الخاص بك!


מידע נוסף על Docker Hub

الصورة التي قمت ببنائها متاحة فقط في بيئتك المحلية. ماذا لو كنت ترغب في جعلها متاحة للآخرين، فلنقل الجميع؟ بالطبع، يمكنك تحميل ملف Dockerfile والملفات ذات الصلة إلى مستودع git، ويمكن للمهتمين بناء الصورة بأنفسهم. ولكن Docker يسمح لك أيضًا بتحميل الصورة المبنية إلى سجلهم. لذلك، قم بإنشاء حساب في hub.docker.com وأنشئ أيضًا مستودعًا لصورتك. ثم قم بتسجيل الدخول في الطرفية بهذا الشكل

כניסה למעגן

قم بوضع علامة على صورتك حتى يمكن تحميلها إلى مستودعك

תג הדוקר my-redmine: האחרונה של lcofre / redmine: האחרונה

وقم بدفعها بهذا الشكل

לדחוף דוקר lcofre / redmine: אחרון

صورة Docker في سجل Docker

الآن يمكن لأي شخص تجربة صورتك عن طريق القيام بالتالي

מפעיל docker -it -p 3000: 3000 - שם my-redmine lcofre / redmine

هذا كل شيء! هكذا تتحول من تثبيت Redmine القياسي إلى نسخة شخصية يمكن الوصول إليها في سجل Docker. يرجى مشاركة تعليقاتك أو أسئلتك أدناه.


דוקר

ستجد أن ملف Dockerfile في المستودع قام بدمج العديد من الأسطر في سطر واحد. هذه هي توصية Docker لتقليل حجم الصور. يمكنك العثور على هذه النصيحة وغيرها في https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

توصية أخرى لتقليل الحجم النهائي للصورة هي استخدام الإصدار الخفيف من Redmine

מ Redmine: אלפיני

Alpine هو توزيع Linux مختلف. بدلاً من استخدام apt لتثبيت الحزم، يجب عليك استخدام apk.

نصيحة أخيرة: الحزم التي قمنا بتثبيتها باستخدام apt في ملف Dockerfile لم تعد مطلوبة بعد بناء الصورة. يمكنك اتباع أفضل الممارسات باستخدام بناء متعدد المراحل: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

ممارسة الاحتفاظ بحجم صورة Docker صغير يساعد بشكل خاص عند توسيع عدد الحالات، ولكنه يقلل أيضًا من سطح الهجوم على صورتك.

الترقية النهائية لـ Redmine؟ سهلة.

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

اكتشف Easy Redmine

جرب Easy Redmine في تجربة مجانية لمدة 30 يومًا

ميزات كاملة، محمية SSL، نسخ احتياطية يومية، في موقعك الجغرافي