Korleis lage di eiga tilpassa Redmine Docker-bilete

6/16/2020
8 minuter
Lukáš Beňa
Redmine är ett av de mest populära verktygen för projektstyrning och uppföljning av problem. Om du har prövat det eller måste installera det i en produktionsmiljö, ger du sannsynlegvis också att det slutligen fungerar som Docker-bilete som gör installationer och skalering mykje enklare för høgtrafikkmiljö.

Redmine för anpassning

Märke: Redmine native docker kan finnes på https://hub.docker.com/_/redmine. Du kan också hitta goda instruktioner om hur du fyller i en extern databas och installerar extern kartläggare (för att kunna installera plugins).

Om du är som mig och foretrekker att se koden direkt för att bygga och anpassa Redmine Docker-bild, kan du gå till github.com/lcofre/redmine och kolla dockerfilen.

Redmine Docker-bildet är ett bra utgångsläge, själv om du förmodligen kommer att anpassa det med plugins och temaer du gillar. I denna vägledning kommer vi att bygga och Docker-bild baserat på det offisielle, lägga till några temaer och plugins, och lasta det upp till docker-registret.

Av enkelhets skyldighet vill vi inte använda en extern databas, men en intern databas i Redmine-containeren själv. För ett produktionsmiljö rekommenderas det dock att sätta upp en dedikert lagringscontainer.


Plugins och temaer

Vi har valt några plugins och temaer för att belysa olika sätt att lägga dem till Redmine på:

  • Skjul sidopanel, en plugin som ger mer skärmplats, speciellt när du skriver saker
  • Lim inn fra utklippstavlen, for å legge vid skärmbilder vid å lime inn fra utklippstavlen i stället för att välja en fil
  • A1 og Gitmike, till temaer för att ändra utseendet på användargrensesnittet

Vi utesluter plugins som kräver en databasuppdatering, för att du behöver en befintlig databas. Kommentera nedan om du behöver installera en plugin som kräver uppdateringar, då vi har goda idéer för dig.


Skriver Dockerfile

En Dockerfile är en uppskrift på hur du bygger och Docker-bilde. Det första vi vill lära henne är att vi må basera bilden vårt på ett annat bild, så vi vill använda det offisielle för Redmine

FRA Redmine

Den här första linjen i Dockerfile har baserat bilden vårt på den senaste och bästa versionen, 4.1.0 på skrivtidspunktet. Sedan detta kommer att hämta vilken som helst version som är den senaste, kan du använda en specifik version för att undvika en ny version som kan förstöra byggnaden av detta bild

FRA Redmine:4.1.0


Använd Git för att få komponenter

I de flesta fall har temaer och utökade git-repositorier där vi kan ladda ner den senaste koden. Detta gäller för följande tre komponenter.

Den grundläggande Redmine-bilden kommer att användas, men vi kan lägga det till bilden på det här sättet

KÖR apt installation -y git

Detta kommer att bli utfört när bilden bygger och vill tillate dig att använda git i följande instruktioner.

Gitmike-temaet: de rekommenderar å klone repoet deras direkt

KÖR GIT-klon https://github.com/makotokw/redmine-theme-gitmike.git offentliga / themes / gitmike

Linjen vill lagra det klonade projektet i riktig map public/themes

Skjul sidopanel: Samme prosedyre kan användas vid utvidgning. Detta kräver ingenting annat än att placera den klonerade kartläggningen i utvidgningsmappen

KÖR GIT-klon https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide

Urklipp Bildklistra: Detta verkar också som den typiska prosedyren, klon repoet och du är klar till att gå

KÖR GIT-klon https://github.com/RubyClickAP/clipboard_image_paste.git plugins / clipboard_image_paste

Men hvis du läsa lite mer vill du se att "det rekommenderas att installera RMagick-gem, eller att bilder inte visas i exporterade PDF-filer". Så hur gör vi detta? Det borde vara som enkelt som

KÖR pärla installera rmagick

men du vet förmodligen att gem måste byggas innan det kan installeras, så du måste installera några paket innan du installerar gem. Linjen du verkligen behöver er

KÖRA apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem installera rmagick

Alt i en kommando, delt i till linjer för lesbarhet.

Den ursprungliga författaren av denna utvidgning ger inte en version för Redmine 4, men sök efter utökad namnet på GitHub för att få ett projekt som gör det: RubyClickAP / clipboard_image_paste.


Lägg till en utökad eller ett tema från en nedlastet källa

A1-temaet är et godt exempel för å illustrera fallne der du har kilden, men inte en URL för att ladda ner under byggprocessen. Ett alternativ i sådana fall är att giva källor till byggprocessen. På så sätt blir innehållet lagt till bilden utan att ladda ner det

COPY a1 public / teman / a1

Detta kräver att a1-mappen är på samma plats som Dockerfilen.

Nå är du klar för att bygga bilden ditt, så öppna en terminal där Dockerfilen din är och kör

docker build -t my-redmine.

När det är byggt kan du köra bilden med

docker run -it -p 3000: 3000 - namn min-redmine my-redmine

Gå vidare och öppna http://localhost:3000 för att anpassa Redmine!

Redmine efter anpassning


Några tips för att lägga till flera utökalser

För att prova nya utvidgningar är det alltid bättre att använda en ny Redmine-container. Det är en sådan jag upptäckt att rmagick kräver att några paket installeras. Först kör en kastbar instans av Redmine med

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

och sedan gå in i instansen med

docker exekvera -it test-redmine bash

Där kan du installera OS-paket, ädelstenar eller köra migrering. Bare husk stegene så att du kan lägga dem till Dockerfilen din!


Senaste upp ditt egendefinierade bild till Docker Hub

Bildet du just byggt är endast tillgänglig i ditt lokala miljö. Hva om du vill göra det tillgänglig för andre, la oss si för alla? Naturligtvis kan du lasta upp Dockerfilen och relaterade filer till en git-repo, och de intresserade kan bygga bilden själv. Men Docker lar dig också läsa upp det bygdebildet till deras register. För detta, upprätt ett konto på hub.docker.com och upprätt också ett arkiv för bilden ditt. Deretter logger du inn i terminalen slik

docker-inloggning

Merk bilden ditt slik att det kan vara upp till ditt repo

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

och push det slik

docker push lcofre / redmine: senaste

Docker-bildet och Docker-registeret

Nå kan vem som helst prova på bilden som du gör

docker run -it -p 3000: 3000 - name my-redmine lcofre / redmine

Det är det! Så här går du från en standard Redmine-installation för en anpassad version som är tillgänglig i Docker-registret. Vänligen se dina kommentarer eller frågor nedan.


Redusere storleken på Docker-bildet

Du vill upptäcka kl Dockerfilen i repoet har slått tillsammans mange linjer till én. Detta är en anbefaling fra Docker for å lage mindre bilder. Du kan finne den anbefalingen och andre på https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

En annan anbefaling för att minska den slutgiltiga storleken på bilden är att använda alpine-versjonen av Redmine

FRA Redmine:alpin

Alpine är en annan Linux-distribution. I stället för att använda apt för att installera paket, måste du använda apk.

Et siste tips: pakkene vi installerade med apt i Dockerfilen är inte längre nödvändiga efter att bilden är byggd. Du kan följa bästa praxis genom att använda flertrinnsbygg: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Praksisen med att hålla ett litet bildspel är speciellt nyttigt när det finns ett stort antal tillfällen, men det ska reduceras även angrepsflaten på bilden.

Den ultimata Redmine-oppgraderingen? Enkel.

Få alla kraftiga verktyg för perfekt projektplanering, -styrning och -kontroll i en programvara.

Uppdag Easy Redmine

Prova Easy Redmine i en 30-dagers gratis provperiod

Fullständig funktionalitet, SSL-skydd, daglig säkerhetskopiering, och din geografiska plats