Hoe maak je je eigen aangepaste Redmine Docker-afbeelding.

6/16/2020
9 λεπτά
Lukáš Beňa.
Το Redmine είναι ένα δημοφιλές εργαλείο για τη διαχείριση έργων και την παρακολούθηση προβλημάτων. Άλλος je het hebt geprobeerd των πιο εγκαταστατών στο een productieomgeving, weet je waarschijnlijk ook dat er een officiële docker image is die de installatie en schaalbaarheid voor high-demand omgevingen sterk vereenvoudigt.

Redmine vóór aanpassing

Παρακαλώ σημειώστε: Redmine native docker kan worden gevonden op https://hub.docker.com/_/redmine. Οι εντολές αυτές είναι διαθέσιμες για την εξωτερική βάση δεδομένων kunt vullen en externe mappen kunt koppelen (από τα πρόσθετα που έχουν εγκατασταθεί).

Als u, net als ik, de code voor het bouwen van een aangepaste Redmine Docker-image direct wilt zien, kunt u naar github.com/lcofre/redmine gaan en het Dockerfile-bestand bekijken.

Η εικόνα του Redmine Docker έχει αρχίσει να ξεκινάει, αλλά δεν έχει ξεπεράσει τα plug-ins και το θέμα. Στο deze handleiding zullen έχουμε Docker-image bouwen op based van de officiële versie, enkele thema's en plug-ins toevoegen en deze uploaden naar het docker-register.

Voor de eenvoud zullen we geen externe database gebruiken, maar een interne database in de Redmine-container zelf. Voor een productieomgeving is het echter raadzaam om een ​​toegewijde opslagcontainer op te zetten.


Πρόσθετα και θέματα

Έχουμε συμπληρώσει τα πρόσθετα και το θέμα του gekozen om gevarieerde manieren te illustreren om ze aan Redmine toe te voegen:

  • Verberg zijbalk, een plug-in om meer schermruimte mogelijk te maken, vooral bij het schrijven van problemen
  • Plak klembord, om schermafbeeldingen bij te voegen door te plakken vanuit het klembord in plaats van een bestand te selecteren
  • A1 en Gitmike, twee thema's om het uiterlijk van de UI te veranderen

Καταργούμε τα πρόσθετα που χρησιμοποιούν τη βάση δεδομένων-μετανάστευση, αλλά και την καλύτερη βάση δεδομένων nodig heeft. Laat hieronder een reactie achter als u een plug-in moet installeren die migraties nodig heeft, omdat we goede ideeën voor u hebben.


Het Dockerfile-bestand schrijven

Το Een Dockerfile είναι ένα recept voor het bouwen van een docker-image. Het eerste feit dat we hier zullen leren, is dat we ons beeld moeten baseren op een ander beeld, dus we zullen het officiële beeld voor Redmine gebruiken

ΑΠΟ Redmine

Deze eerste regel van het Dockerfile-bestand zal ons beeld baseren op het nieuwste en beste beeld, 4.1.0 op het moment van schrijven. Omdat dit de nieuwste versie pakt, kunt u ervoor kiezen om een ​​specifieke versie te gebruiken om onverwachte nieuwe versies te vermijden die de bouw van dit beeld kunnen breken

ΑΠΟ Redmine: 4.1.0


Gebruik Git om de componenten te krijgen

Στα πρόσθετα git-repositories των θεμάτων του gevallen hebben μπορείτε να κατεβάσετε τον κώδικα που έχετε λάβει. Dit is het geval voor de volgende drie componenten.

De βάση Redmine-image wordt geleverd zonder git, maar we kunnen het op deze manier aan de image toevoegen

RUN apt install -y git

Dit wordt uitgevoerd wanneer de image wordt gebouwd en stelt u in staat om git te gebruiken in de volgende instructions.

Gitmike-θέμα: ζε ράντεν ααν ομ χουν ρεπο άμεσο τε κλόνεν

Εκτελέστε τον κλώνο git https://github.com/makotokw/redmine-theme-gitmike.git δημόσια / θέματα / gitmike

Deze regel slaat het gekloonde project op in de juiste map public/themes

Πλαϊνή μπάρα verbergen: Dezelfde διαδικασία kan worden toegepast op plugins. Deze vereist niets meer dan het plaatsen van de gekloonde map in de plugins-map

Εκτελέστε τον κλώνο git https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide

Πρόχειρο με πλακέν: Dit lijkt ook de typische procedure te zijn, kloon de repo en je bent klaar om te gaan

Εκτελέστε τον κλώνο git https://github.com/RubyClickAP/clipboard_image_paste.git plugins / clipboard_image_paste

Maar als je een beetje meer leest zul je zien dat "είναι ένα wordt om de RMagick-gem te installeren, anders worden bijgevoegde afbeeldingen niet weergegeven in geëxporteerde PDF-bestanden". Πάμε; Het zou zo eenvoudig moeten zijn als

RUN gem εγκατάσταση rmagick

maar je weet waarschijnlijk dat de gem moet worden gebouwd voordat deze kan worden geïinstalleerd, dus je moet wat pakketten installeren voordat je de gem installeert. De regel die je echt nodig hebt is

RUN apt install -y build-sential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem εγκατάσταση rmagick

Το Allemaal in één opdracht, εξήγησε πάνω από twee regels voor leesbaarheid.

Μπορείτε να εγγράψετε το πρόσθετο με την έκδοση του Redmine 4, να δημιουργήσετε μια νέα προσθήκη στο GitHub και να το εγκαταστήσετε στο έργο: RubyClickAP / clipboard_image_paste.


Een plugin του θέματος toevoegen vanuit een gedownloade bron

Ο Α1-θέμα is een goed voorbeeld om de gevallen te illustreren waarin u de bron heeft, maar geen URL om tijdens het bouwproces te downloaden. Een optie in gevallen als deze is om de bron aan het bouwproces te leveren. Op die manier wordt de inhoud aan de image toegevoegd zonder deze te downloaden

COPY a1 δημόσιο / θέματα / a1

Hierbij moet de a1-map op dezelfde plaats staan ​​als het Dockerfile-bestand.

Nu ben je klaar om je image te bouwen, dus open een terminal waar je Dockerfile staat en voer uit

docker build -t my-redmine.

Η Zodra het είναι gebouwd, kunt u uw image uitvoeren met

docker run -it -p 3000: 3000 --όνομα my-redmine my-redmine

Μπορείτε να δείτε http://localhost:3000 om uw aangepaste Redmine te zien!

Redmine και aanpassing


Enkele tips om meer plugins toe te voegen

Όλα τα πρόσθετα που χρησιμοποιούν το Redmine-container, είναι καλύτερα από το Redmine-container. Zo kwam ik erachter dat rmagick enkele pakketten moest installeren. Voer eerst een wegwerpexemplaar van Redmine uit συναντήθηκαν

docker run --rm -d -p 3000: 3000 --name test-redmine redmine

en ga vervolgens naar de instantie met

docker exec -it test -redmine bash

Αν θέλετε να εγκαταστήσετε το OS-packetten, gems installer του migraties uitvoeren. Αν θέλετε να κάνετε κλικ στο Dockerfile!


Θα πρέπει να επικολλήσετε τη μεταφόρτωση στο Docker Hub

De afbeelding die je zojuist hebt gebouwd is alleen beschikbaar voor je lokale omgeving. Wat als je het beschikbaar wilt maken voor anderen, laten we zeggen voor iedereen; Natuurlijk kun je de Dockerfile en gerelateerde bestanden uploaden naar een git-repo en kunnen geïnteresseerden de afbeelding zelf bouwen. Ο Maar Docker είναι ο όουκ του δακτύλου του ποδιού και του γεγονότος ότι ανεβάζει την εγγραφή του. Λογαριασμός για τον λογαριασμό σας σε ένα από τα hub.docker.com και για ένα αποθετήριο για να λάβετε γνώση. Καταγραφή vervolgens στο op de terminal als volgt

σύνδεση στο docker

Tag je afbeelding zodat deze kan worden geüpload naar je repo

docker tag my-redmine: τελευταία lcofre / redmine: τελευταία

en push het als volgt

docker push lcofre / redmine: τελευταία

De Docker-afbeelding στο μητρώο Docker

Nu kan iedereen je afbeelding uitproberen door het volgende te doen

docker run -it -p 3000: 3000 --όνομα my-redmine lcofre / redmine

Αυτό είναι χαζό! Η τυπική έκδοση Redmine-installatie για την προσωπική προσωποποίηση της έκδοσης είναι στο μητρώο Docker. Deel alsjeblieft je opmerkingen of vragen hieronder.


Είναι η μορφή του Docker-afbeelding verkleinen

Je zult merken dat de Το Dockerfile στο repo veel regels heeft samengevoegd tot één. Αυτό είναι ένα κομψοτέχνημα του Docker om kleinere afbeeldingen te maken. Je kunt dat advies en andere vinden op https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Nog een aanbeveling om de uiteindelijke grootte van de afbeelding te verminderen, is om de alpine-versie van Redmine te gebruiken

ΑΠΟ Redmine: αλπικό

Η Alpine είναι μια και χωρίς Linux διανομή. In plaats van apt te gebruiken om pakketten te installeren, moet je apk gebruiken.

Nog een laatste tip: de pakketten die we hebben geïinstalleerd met apt in de Dockerfile zijn niet meer nodig nadat de afbeelding is gebouwd. Je kunt de best practice volgen van het gebruik van builds πολλαπλών σταδίων: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

De praktijk om een ​​kleine Docker-afbeelding te behouden helpt vooral bij het opschalen van het aantal instanties, maar vermindert ook het aanvalsoppervlak op je afbeelding.

Από την τελευταία αναβάθμιση του Redmine; Makkelijk.

Krijg alle krachtige εργαλεία για τέλειο σχεδιασμό έργου, -beheer en -controle στο λογισμικό één.

Ontdek Easy Redmine

Probeer Easy Redmine 30 dagen δωρεάν

Volledige functies, SSL-beveiligd, dagelijkse back-ups, in uw geografische locatie