كيفية إنشاء صورة Docker مخصصة لـ Redmine الخاص بك
Redmine πριν التخصيص
Ειδοποίηση: يمكن العثور على Docker الأصلي لـ Redmine على https://hub.docker.com/_/redmine. هنا يمكنك أيضًا العثور على تعليمات جيدة حول كيفية ملي قاعدة بيانات εξωτερικών και τρισδιάστατων συνθηκών εξωτερι- κών (λτ.
إذا كنت مثلي وتفضل أن ترى مباشرةً الشفرة لبناء صورة Redmine Docker مخصة, يمكنك الانتقال إلى github.com/lcofre/redmine والتحقق من Dockerfile.
صورة Redmine Docker هي نقطة انطلاق جيدة, على الرغم من أنك ربما ترغب في تخصيصها باستخدام المكونات الإضافية والسمات التي تفضلها. في هذا الدليل, سنقوم ببناء صورة Docker Stanadًa إلى الصورة الرسمية, και اضافة ορισμένων ειδών και άλμπουμ, وتحميلها إلى سجل Docker.
λأسباب بساطة, لن نستخدم قاعدة بيانات εξωτερικών οχημάτων και εσωτερικά μέσα στο Redmine. ومع ذلك ، فمن المستحسن إعداد حاوية تخزين مخصصة لبيئة الإنتاج.
المكونات الإضافية والسمات
Επιλογή ορισμένων στοιχείων του Redmine:
- Απόκρυψη της πλαϊνής γραμμής , وهو مكون إضافي يسمح بمزيد من مساحة الشاشة
- لصق من الحافظة , لإرفاق لقطات الشاشة عن طريق لصق من الحافظة بدلاً από την άποψή μου
- A1 و Gitmike ، سمتان لتغيير مظهر واجهة المستخدم
Τελειοποιήστε το σύστημά σας. يرجى التعليق أدناه إذا كنت بحاجة إلى تثبيت مكون إضافي يحتاج إلى ترحيلات, حيث لدينا أفكار جيدة لك.
كتابة ملف Dockerfile
Melf Dockerfile هو وصفة لكيفية بناء صورة Docker. أول حقيقة سنتعلمها هنا أنه يجب أن نستند صورتنا إلى صورة أخرى , خوب سنستخدم الصورة الرسمية لـ Redmine
από Redmine
هذا السطر الأول في Melf Dockerfile ή صورتنا على أحدث صورة متاحة, 4.1.0 σε μια στιγμή κατά την εγγραφή. نظرًا لأن هذا سيحصل على أي إصدار هو الأحدث, قد تفضل χρήση إصدار محدد لتجنب إصدارات جديد غير متوقعة قد تعطل بناء هذه الصورة
από Redmine:4.1.0
χρήση Git للحصول على المكونات
في معمار الحالات، تحتوي السمات والمكونات الإضافية على مستودعات Git حيث يمكننا تنزيل أحدث الشفرات. هذا هو الحال للمكونات الثلاثة التالية.
Υπόθεση Redmine - χωρίς Git
RUN apt install -y git
سيتم تنفيذ هذا و بناء الصورة وسيسمح لك باستخدام Git في التعليمات التالية.
سمة Gitmike: يوصون بنسخ مستودعهم مباشرة
Εκτελέστε τον κλώνο git https://github.com/makotokw/redmine-theme-gitmike.git δημόσια / θέματα / gitmike
سيقوم السطر بحفظ المشروع المستنسخ في المجلد المناسب δημόσια/θέματα
Απόκρυψη της πλαϊνής γραμμής: يمكن تطبيق نفس الإجراء على المكونات الإضافية. هذا المكون لا يتطلب سوى وضع المجلد المستنسخ في مجلد المكونات الإضافية
Εκτελέστε τον κλώνο 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 gem εγκατάσταση rmagick
ولكن ربما تعلم أنه يجب بناء الحزمة قبل أن يتم تثبيتها، يجب عليك تثبيت بعضي الحزم قبل تثبيت الحزمة. السطر الذي تحتاجه حقًا هو
RUN apt install -y build-sential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \
&& gem εγκατάσταση rmagick
كل ذلك في أمر واحد، مفصول على سطرين لسهولة القراءة.
المؤلف الأصلي لهذا المكون الإضافي لا يوفر إصدارًا لـ Redmine 4, olken elbhth An Όνομα Μνήμης στο GitHub أدى بي إلى مشروع يفعل ذلك: RubyClickAP / clipboard_image_paste.
إضافة مكون إضافي أو سمة من مصدر انتزيله
Χαρακτηριστικό A1 Για παράδειγμα, επιλέξτε τη διεύθυνση URL που θέλετε να χρησιμοποιήσετε. إحدى الخيارات في مثل هذه الحالات هو توفير المصدر لعملية البناء. .
COPY a1 δημόσιο / θέματα / a1
يتطلب ذلك وجود مجلد a1 في نفس المكان الذي يوجد فيه ملف Dockerfile.
الآن أنت جاهز لبناء صورتك، افتح الطرفية حيث يوجد ملف Dockerfile الخاص بك وقم بتنفيذ
docker build -t my-redmine.
بمجرد الانتهاء من البناء، يمكنك تشغيل الصورة الخاصة بك باستخدام
docker run -it -p 3000: 3000 --όνομα my-redmine my-redmine
انتقل إلى http://localhost:3000 لرؤية Redmine المخصص الخاص بك!
Redmine μετά από التخصيص
ορισμένες النصائح لإضافة المزيد من المكونات الإضافية
لتجربة المكونات الإضافية الجديدة، من الأفضل دائماً χρησιμοποίηση Redmine جديدة. هذا هو كيف أدركت أن rmagick يتطلب تثبيت بعضي الحزم. أولاً، قم بتشغيل نسخة قابلة للتجاهل من Redmine باستخدام
docker run --rm -d -p 3000: 3000 --name test-redmine redmine
ثم ادخل إلى النسخة باستخدام
docker exec -it test -redmine bash
هنا يمكنك تثبيت حزم النظام الأساسية، وحزم الجواهر، أو تشغيل الترحيلات. Μόνο παρατήρηση δεν έχει απορριφθεί από το Dockerfile!
تحميل صورتك المخصصة إلى Docker Hub
الصورة التي قمت ببنائها متاحة فقط في بيتك المحلية. ماذا لو كنت ترغب في جعلها متاحة للآخرين، فلنقل الجميع؟ بالطبع، يمكنك تحميل Melf Dockerfile και Αποθήκευση Εγχειριδίου και Συνιστώμενη git. ولكن Docker يسمح لك أيضًا بتحميل الصورة المبنية إلى سجلهم. لذلك، قم بإنشاء حساب في hub.docker.com وأنشئ أيضًا مستودعًا لصورتك. ثم قم بتسجيل الدخول في الطرفية بهذا الشكل
σύνδεση στο docker
قم بوضع علامة على صورتك حتى يمكن تحميلها إلى مستودعك
docker tag my-redmine: τελευταία lcofre / redmine: τελευταία
وقم بدفعها بهذا الشكل
docker push lcofre / redmine: τελευταία
صورة Docker في سجل Docker
الآن يمكن لأي شخص تجربة صورتك عن طريق القيام بالتالي
docker run -it -p 3000: 3000 --όνομα my-redmine lcofre / redmine
هذا كل شيء! هكذا تتحول من تثبيت Redmine القياسي إلى نسخة شخصية يمكن الوصول إليها في سجل Docker. يرجى مشاركة تعليقاتك أو أسلتك أدناه.
Αξιολόγηση όγκου Docker
ستجد أن Melf Dockerfile في المستودع قام بدمج العديد من الأسطر في سطر واحد. هذه هي توصية Docker لتقليل μέγεθος μεγέθους. يمكنك العثور على هذه النصيحة وغيرها في https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
توصية أخرى لتقليل الحجم النهائي للصورة هي χρήση الإصدار الخفيف من Redmine
ΑΠΟ Redmine: αλπικό
Alpine هو توزيع Linux Διάφορα. .
نصيحة أخيرة: الحزم التي قمنا بتثبيتها باستخدام apt في Melf Dockerfile لم تعد مطلوبة بعد بناء الصورة. يمكنك اتباع أفضل الممارسات باستخدام باناء πολλές المراحل: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds
ممارسة الاحتفاظ بحجم صورة Docker صغير يساعد بشكل خاص عند توسيع عدد الحالات، ولكنه يقلل أيضًا من سطح الهجوم على صورتك.
الترقية النهائية لـ Redmine? سهلة.
احصل على جميع الأدوات القوية لتخطيط المشروع المثالي وإدارته والسيطرة عليه في برنامج واحد.