Korleis lage di eiga tilpassa Redmine Docker-bilete

6/16/2020
8 minutter
Lukáš Beňa
Redmine er et af de mest populære værktøjer til projektstyring og opfølgning af problem. Om du har prøvet det eller måtte installere det i et produktionsmiljø, giver du sandsynlegvis også at det finst et offisielt Docker-bilete som gjer installation og skalering mykje enklare for høgtrafikkmiljø.

Redmine før tilpasning

Brand: Redmine native docker kan findes på https://hub.docker.com/_/redmine. Her kan du også finde gode instruktioner om, hvordan du udfylder en ekstern database og monterer eksterne mapper (til at kunne installere plugins).

Hvis du er som mig og foretrekker at se koden direkte for at bygge og tilpasse Redmine Docker-billeder, kan du gå til github.com/lcofre/redmine og tjek Dockerfile.

Redmine Docker-billedet er et godt udgangspunkt, selv om du sandsynligvis vil tilpasse det med plugins og temaer du liker. I denne vejledning vil vi bygge et Docker-billede baseret på det offisielle, lægge til nogen temaer og plugins, og lade det op til docker-registret.

Af enkeltheds skyld vil vi ikke bruge en ekstern database, men en intern database i Redmine-containeren selv. For et produktionsmiljø anbefales det imidlertid at sætte op en dedikert lagringscontainer.


Plugins og temaer

Vi har valgt nogle plugins og temaer til at illustrere forskellige måder at legge dem til Redmine på:

  • Skjul sidepanelet, en plugin som giver mere skærmplads, specielt når du skriver saker
  • Lim inn fra udklippstavlen, for å legge ved skærmbilleder ved å lime inn fra udklippstavlen i stedet for at vælge en fil
  • A1 og Gitmike, til temaer for at ændre udseendet på brugergrensesnittet

Vi ekskluderer plugins som kræver en databaseopdatering, da du behøver en eksisterende database. Kommenter venligst nedenfor, hvis du behøver at installere et plugin som kræver opdateringer, da vi har gode ideer til dig.


Skriver Dockerfile

En Dockerfile er en opskrift på hvordan du bygger et Docker-billede. Det første vi vil lære her er at vi må basere billedet på et andet billede, så vi vil bruge det offisielle for Redmine

FRA Redmine

Denne første linje i Dockerfile vil basere billede vores på den nyeste og bedste version, 4.1.0 på skrivetidspunktet. Siden dette vil hente hvilken som helst version som er nyeste, kan du forudsætte at bruge en specifik version til at undgå at udelukke nye versioner som kan ødelægge bygningen af ​​dette billede

FRA Redmine:4.1.0


Å bruge Git for at få komponentene

I de fleste tilfælde har temaer og udvidede git-repositorier der vi kan læse ned den nyeste koden. Dette gælder for følgende tre komponenter.

Den grundlæggende Redmine-billede kommer uden om, men vi kan lægge det til billedet på denne måde

KØR apt installation -y git

Dette vil blive udført når billedet bygger og vil tillate dig at bruge git i de følgende instruksjonene.

Gitmike-temaet: de anbefaler å klone repoet deres direkte

Kør git klon https://github.com/makotokw/redmine-theme-gitmike.git offentlig / temaer / gitmike

Linjen vil lagre det klonede projekt i det rigtige kort offentlige/temaer

Skjul sidepanelet: Samme prosedyre kan bruges til at udvide. Dette kræver intet andet end at placere den klonede kortlægning i udvidelsesmappen

Kør git klon https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide

Klippebord Billedpasta: Dette virker også som den typiske prosedyre, klon repoet og du er klar til at gå

Kør git klon https://github.com/RubyClickAP/clipboard_image_paste.git plugins / clipboard_image_paste

Men hvis du læser lidt mere vil du se at "det anbefales at installere RMagick-gem, ellers vil vedlagte billeder ikke vises i eksporterede PDF-filer". Så hvordan gør vi dette? Det burde være som enkelt som

RUN perle installer rmagick

men du vet sikkert at gem må bygges før det kan installeres, så du må installere nogle pakker før du installerer gem. Linjen du virkelig behøver er

Kør apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && perleinstallere rmagick

Alt i en kommando, delt i til linjer for lesbarhet.

Den oprindelige forfatter af denne udvidelse giver ikke en version for Redmine 4, men en søger efter et udvidet navn på GitHub førte mig til et projekt som gør det: RubyClickAP / clipboard_image_paste.


Læg til en udvidelse eller et tema fra en nedlastet kilde

A1-temaet er et godt eksempel for å illustrere tilfældene der du har kilden, men ikke en URL at laste ned under byggeprocessen. Et alternativ i tilfælde er at give kilde til byggeprocessen. På den måde bliver indholdet lagt til billedet uden at læse det

KOPI a1 offentlig / temaer / a1

Dette kræver at a1-mappen er på samme sted som Dockerfilen.

Nå er du klar til at bygge billedet, så åbne en terminal der Dockerfilen din er og kjør

docker build -t min-redmine.

Når det er bygget, kan du køre billedet med

docker run -it -p 3000: 3000 - navn min-redmine min-redmine

Gå videre og åbne http://localhost:3000 for at se dit tilpassede Redmine!

Redmine efter tilpasning


Nogle tips til at legge til flere udvidelser

For at prøve nye udvidelser er det altid bedre at bruge en ny Redmine-container. Det er sådan jeg opdager at rmagick kræver at nogen pakker bliver installeret. Først kjør en kastbar instans af Redmine med

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

og derefter gå ind i instansen med

docker udfører -det test-redmine bash

Der kan installeres OS-pakker, gems eller køre migreringer. Bare husk trinnene sådan at du kan legge dem til Dockerfilen din!


Sidste op dit egendefinerede billede til Docker Hub

Billedet du netop bygget er kun tilgængelig i dit lokale miljø. Hva om du ønsker å gjøre det tilgængelig for andre, la oss si for alle? Selvfølgelig kan du sidste op Dockerfilen og relateret filer til et git-repo, og de interesserede kan bygge billedet selv. Men Docker lar dig også lade op det bygde billede til deres register. For dette, opret en konto på hub.docker.com og opret også et repository for billedet. Deretter logger du inn i terminalen slik

docker-login

Merk billedet dit slik at det kan vare op til dit repo

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

og push det slik

docker push lcofre / redmine: seneste

Docker-billedet og Docker-registret

Nå kan hvem som helst prøve ud af billedet ved at gøre

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

Det er det! Sådan går du fra en standard Redmine-installation til en tilpasset version som er tilgængelig i Docker-registret. Se venligst dine kommentarer eller spørgsmål nedenfor.


Redusere størrelsen på Docker-billedet

Du vil opdage kl Dockerfilen i repoet har slått sammen mange linjer til én. Dette er en anbefaling fra Docker for at lave mindre billeder. Du kan finde den anbefalingen og andre på https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

En anden anbefaling for å reducere den endelige størrelse på billedet er at bruge alpine-versjonen af ​​Redmine

FRA Redmine:alpine

Alpine er en anden Linux-distribution. I stedet for at bruge apt til at installere pakker, må du bruge apk.

Et siste tips: pakkene vi installerede med apt i Dockerfilen er ikke længere nødvendige efter at billedet er bygget. Du kan følge den bedste praksis ved at bruge flertrinnsbygg: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Praksisen med at holde et lille billede er specielt nyttigt, når der er tale om et beløb, men det skal reduceres også angrepsflaten på billedet.

Den ultimative Redmine-opgraderingen? Enkel.

Få alt kraftigt værktøj til perfekt projektplanlægning, -styring og -kontrol i én software.

Opdag Easy Redmine

Prøv Easy Redmine i en 30-dagers gratis prøveperiode

Fuld funktionalitet, SSL-beskyttet, daglig sikkerhedskopiering, i din geografiske placering