Korleis lage di eiga tilpassa Redmine Docker-bilete
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.