Hoe maak je je eigen aangepaste Redmine Docker-afbeelding.

6/16/2020
9 perc
Lukáš Beňa.
A Redmine a legnépszerűbb projektmenedzsment és problémakövető eszközök. Als je het hebt geprobeerd of moest installeren in 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

Kérjük, vegye figyelembe: Redmine natív docker kan worden gevonden op https://hub.docker.com/_/redmine. Hier vindt u ook goede instructions over hoe u een externe database kunt vullen en externe mappen kunt koppelen (om plug-ins te kunnen installeren).

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.

A Het Redmine Docker-image startpunt, hoewel u het waarschijnlijk wilt aanpassen for plug-inek és thema's naar uw smaak. A deze handiding zullen we een Docker-image bouwen op basic 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.


Beépülő modulok és témák

Mi hebben een paar plug-inek en thema's 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

A beépülő modulokat minden adatbázis-migratie vereisen, omdat u een bestaande adatbázis nodig heeft segítségével zárjuk le. Itt van a reakció, ha a beépülő modul telepítője nem haladja meg a migrációt, és az ötlet is lehetséges.


Het Dockerfile-bestand schrijven

Az Een Dockerfile a Docker-képhez készült. 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-től

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-től: 4.1.0


Gebruik Git om de komponenten te krijgen

In de meeste gevallen hebben thema's en plugins git-repositories waar we de nieuwste code kunnen downloaden. Dit is het geval voor de volgende drie komponenten.

De basic 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 instructies.

Gitmike-téma: ze raden aan om hun repo direct te klonen

RUN git klón https://github.com/makotokw/redmine-theme-gitmike.git nyilvános / themes / gitmike

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

Sidebar verbergen: Dezelfde eljárás kan worden toegepast op plugins. Deze vereist niets meer dan het plaatsen van de gekloonde map in de plugins-map

RUN git klón https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide

Vágólap-afbeelding plakken: Dit lijkt ook de typische procedúra te zijn, kloon de repo en je bent klaar om te gaan

RUN git klón https://github.com/RubyClickAP/clipboard_image_paste.git plugins / clipboard_image_paste

Maar als je een beetje meer leest zul je zien dat "het aanbevolen wordt om de RMagick-gem te installeren, anders worden bijgevoegde afbeeldingen niet weergegeven in geëxporteerde PDF-bestanden". Dus hoe csináltunk? Het zou zo eenvoudig moeten zijn als

Futtassa a gem install rmagick szoftvert

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

Futtassa a telepítést - ha épít-nélkülözhetetlen imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem install rmagick

Allemaal in één opdracht, verdeeld over twee regels voor leesbaarheid.

De oorspronkelijke auteur van deze plugin beedt geen versie voor Redmine 4, maar een zoekopdracht naar de pluginnaam in GitHub bracht me op een project dat wel doet: RubyClickAP / clipboard_image_paste.


A thema toevoegen plugin vanuit een gedownloade bron

A A1-téma 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

MÁSOLÁS a1 nyilvános / témák / 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 terminál waar je Dockerfile staat en voer uit

dokkoló építés - my-redmine.

Zodra het is gebouwd, kunt u uw image uitvoeren met

dokkoló futtatása -p-3000: 3000 - neve my-redmine my-redmine

Ga naar http://localhost:3000 om uw aangepaste Redmine te zien!

Redmine na ananssing


Enkele tippeket om több plugin toe te voegen

Om új plugins uit te proberen, is het altijd beter om een ​​uwe Redmine-container te gebruiken. Zo kwam ik erachter dat rmagick enkele pakketten moest installeren. Voer eerst een wegwerpexemplaar van Redmine uit met

dokkoló fut - rm -d -p 3000: 3000 - név teszt-redmine redmine

en ga vervolgens naar de instantie met

dokkoló végrehajtja - teszt-redmine bash

Daar kunt u OS-pakketten installeren, gems installeren of migraties uitvoeren. Onthoud gewoon de stappen zodat u ze aan uw Dockerfile kunt toevoegen!


A Docker Hub feltöltötte

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 staat je ook toe om de gebouwde afbeelding naar hun register te uploaden. Maak daarvoor een account aan op hub.docker.com en maak ook een repository aan voor je afbeelding. Log vervolgens in op de terminal als volgt

dokkoló bejelentkezés

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

docker tag my-redmine: legújabb lcofre / redmine: legújabb

hu nyomja het als volgt

dokkoló push lcofre / redmine: legújabb

De Docker-afbeelding a Docker-regiszterben

Nu kan iedereen je afbeelding uitproberen door het volgende te doen

dokkoló futtatása -p-3000: 3000 - neve my-redmine lcofre / redmine

Ez het! Zo ga je van een standaard Redmine-installatie naar een gepersonaliseerde versie die toegankelijk is in het Docker-register. Deel alsjeblieft je opmerkingen of vragen hieronder.


Ez a Docker-afbeelding verkleinen formátum

Je zult merken dat de Dockerfile in de repo veel regels heeft samengevoegd tot één. Ez is aanbeveling van 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 alpesi versie van Redmine te gebruiken

Redmine-től: alpesi

Az Alpine egy másik Linux-terjesztő. In plaats van apt te gebruiken om pakketten te installeren, moet je apk gebruiken.

Nog een laatste tipp: de pakketten die we hebben geïnstalleerd met apt in de Dockerfile zijn niet meer nodig nadat de afbeelding is gebouwd. Je kunt de best practice volgen van het gebruik van többlépcsős build: 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.

Vége a Redmine-frissítésnek? Makkelijk.

Krijg alle krachtige tools voor tökéletes projekttervezés, -beheer en -controle in één szoftver.

Ontdek Easy Redmine

Probeer Easy Redmine 30 dagen ingyenes

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