Hoe maak je eigen aangepaste Redmine Docker-afbeelding.

6/16/2020
9 minut
Lukáš Beňa.
Redmine je jedním z nejoblíbenějších nástrojů pro správu projektů a sledování problémů. Tento obrázek je také instalátorem, který se nejvíce instaluje v een produktivním vývoji, je velmi dobře připravený od oficiálního dockeru.

Redmine vóór aanpassing

Dávej si pozor: Redmine native docker kan worden gevonden op https://hub.docker.com/_/redmine. Podívejte se na pokyny k používání externích databází kunt vullen a externích mappen kunt koppelen (o zásuvných modulech, které jsou nainstalovány).

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-image je een go startpunt, hoewel a het waarschijnlijk wilt aanpassen a plug-ins in the themate is aw smaak. V základním zpracování obrazu jsme vytvořili docker-image na základě oficiální verze, zahrnuli témata a zásuvné moduly, které jsou k dispozici a načítají se do docker-registru.

Většinu z nich jsme vytvořili externí databázi, která je součástí vnitřní databáze v kontejneru Redmine. Dosavadní produktivita je neustále řízena a neustále se šíří opslagcontainer op te zetten.


Zásuvné moduly v tématech

Používáme několik zásuvných modulů v tématických gekozenech, které jsou zobrazeny na webu Redmine:

  • 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

Používáme plug-iny, které umožňují migraci databází, omyvatelé a nejlepší databáze nodig heeft. Laat hieronder een reakce achter als u een plug-in moet installeren die migraties nodig heeft, omdat we goede ideeën voor u hebben.


Het Dockerfile-nejlépe schrijven

Een Dockerfile je een recept veor het bouwen van een Docker-image. Het eerste feit dat we hier zullen leren, is date we ons beeld moeten baseren op een ander beeld, dus we zullen het officiële beeld voor Redmine gebruiken

Z Redmine

Deze eerste regel van het Dockerfile-bestand zal ons beeld baseren op het nouwste 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

Z Redmine: 4.1.0


Gebruik Git om de componenten te krijgen

V de meeste gevallen hebben thema's en plugins git-repositories waar we de nouwste code kunnen downloaden. To je het geval voor de volgende suché komponenty.

Základem redmine-image wordt geleverd zonder git, maar we kunnen het op deze manier aan de image toevoegen

SPUSTÍTE 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-téma: ze raden aan om hun repo direct te klonen

RUN git klon https://github.com/makotokw/redmine-theme-gitmike.git public / themes / gitmike

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

Verbergen bočního panelu: Dezelfde procedure kan worden toegepast op plugins. Deze vereist niets meer dan het plaatsen van de gekloonde map in de plugins-map

RUN git klon https://gitlab.com/bdemirkir/sidebar_hide.git pluginy / sidebar_hide

Schránka-afbeelding plakken: Dit lijkt ook de typische procedure te zijn, kloon de repo en je bent klaar om te gaan

RUN git klon https://github.com/RubyClickAP/clipboard_image_paste.git pluginy / 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 net weergegeven in geëxporteerde PDF-bestanden". Dus hoe jsme dit? Het zou zo eenvoudig moeten zijn als

RUN gem nainstalovat rmagick

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

SPUSTÍTE apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem install rmagick

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

Ověřený autor a plugin obsahuje verzi pro Redmine 4, která je součástí pluginů na GitHubu, vezměte si mě s daty projektu, která jsou k dispozici: RubyClickAP / clipboard_image_paste.


Een plugin thema toevoegen vanuit een gedownloade bron

The A1-téma is een goed voorbeeld om de gevallen te illustreren waarin u de bron heeft, maar geen URL om tijdens het bouwproceste te downloaden. Een optie in gevallen als deze je om de bron aan het bouwproceste te leveren. Op die manier wordt de inhoud aan de image toegevoegd zonder deze te downloaden

KOPIE a1 veřejné / témata / 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

stavitel doku -t můj-redmine.

Zodra het is gebouwd, kunt u uw image uitvoeren met

docker run -it -p 3000: 3000 - jméno my-redmine my-redmine

Zde je http://localhost:3000 om aangepaste Redmine te zien!

Redmine aanpassing


Enkele tipy na další pluginy toe te voegen

Od nových pluginů, které jsou pro vás připraveny, je lepší než nový kontejner Redmine te gebruiken. Po dokončení instalace. Každý z nás se setkal s Redmine

docker run - rm -d -p 3000: 3000 - jméno test-redmine redmine

en ga vervolgens naar de instantie met

docker exec -it test -redmine bash

Chcete-li nainstalovat balík OS, můžete nainstalovat drahokamy migrací. Onthoud gewoon de stappen zodat u ze aan uw Dockerfile kunt toevoegen!


Je aangepaste afbeelding uploaded to 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, late 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 is afbeelding. Log vervolgens in op de terminal als volgt

přihlášení do doku

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

docker tag my-redmine: latest lcofre / redmine: latest

en push het als volgt

dokovací push lcofre / redmine: nejnovější

De Docker-afbeelding v het Docker-register

Nu kan iedereen je afbeelding uitproberen door het volgende te doen

docker run -it -p 3000: 3000 - jméno my-redmine lcofre / redmine

To je het! Tato verze je standardně nainstalována Redmine a je v registru Dockerů. Deel alsjeblieft je opmerkingen vragen hieronder.


Formát od Docker-afbeelding verkleinen

Je zult merken dat de Dockerfile v de repo veel regels heeft samengevoegd tot één. To je úkosem od Dockera a jeho malých rozměrů. 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

Z Redmine: alpine

Alpine je další linuxová distribuce. V plaats van apt te gebruiken om pakketten te installeren, moet je apk gebruiken.

Nog een laatste tip: de pakketten die we hebben geïnstalleerd met apt in de Dockerfile zijn niet meer nodig nadat de afbeelding is gebouwd. Je to nejlepší praxe pro vícestupňové sestavení: 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 antal instanties, maar vermindert ook het aanvalsoppervlak op je afbeelding.

Poslední upgrade Redmine? Makkelijk.

Používejte všechny nástroje pro dokonalé plánování projektů, ovládání a ovládání v één softwaru.

Ontdek Easy Redmine

Probeer Easy Redmine 30 dní zdarma

Volledige funkce, SSL-beveilidge, dagelijkse back-ups, in uw geografische locatie