Sådan opretter du dit brugerdefinerede Redmine Docker-billede
Redmine før tilpasning
Bemærk: Redmine native docker kan findes på https://hub.docker.com/_/redmine. Her kan du muligvis også finde gode instruktioner til, hvordan du udfylder en ekstern database og monterer eksterne mapper (for at kunne installere plugins).
Hvis du er som mig og foretrækker at direkte se koden til opbygning af et tilpasset Redmine Docker-billede, kan du gå til github.com/lcofre/redmine og kontroller Dockerfile.
Redmine Docker-billedet er et godt udgangspunkt, selvom du sandsynligvis ønsker at tilpasse det med plugins og temaer, du ønsker. I denne vejledning skal vi bygge et Docker-billede baseret på det officielle, tilføje nogle temaer og plugins og uploade det til dockerregistret.
For enkelhedens skyld bruger vi ikke en ekstern database, men en intern database i selve Redmine-containeren. For et produktionsmiljø anbefales det dog at opsætte en dedikeret opbevaringscontainer.
Plugins og temaer
Vi valgte et par plugins og temaer for at illustrere forskellige måder at tilføje dem til Redmine:
- Skjul sidebjælke, et plugin, der giver mulighed for mere skærmplads, især når du skriver problemer
- Indsæt udklipsholder, for at vedhæfte skærmbilleder, der indsættes fra udklipsholderen i stedet for at vælge en fil
- A1 , Gitmike, to temaer for at ændre UI's udseende
Vi udelukker plugins, der kræver en databasemigrering, da du har brug for en forudbestående database. Kommenter venligst nedenfor, hvis du har brug for at installere et plugin, der har brug for migrering, da vi har gode ideer til dig.
Skrivning af Dockerfile
En Dockerfile er en opskrift på, hvordan man bygger et Docker-billede. Den første kendsgerning, vi lærer her, er, at vi er nødt til at basere vores image på et andet billede, så vi bruger det officielle til Redmine
FRA Redmine
Denne første linje i Dockerfile baserer eller billedet på det seneste og bedste billede, 4.1.0 på skrivende tidspunkt. Da dette griber uanset hvilken version der er senest, kan du foretrække at bruge en bestemt version for at undgå uventede nye versioner, der kan ødelægge opbygningen af dette billede
FRA Redmine: 4.1.0
Brug af Git til at hente komponenterne
I de fleste tilfælde har temaer og plugins git-lagre, hvor vi kan hente den nyeste kode. Dette er tilfældet for de følgende tre komponenter.
Basis Redmine-billedet kommer uden git, men vi kan føje det til billedet på denne måde
KØR apt installation -y git
Dette udføres, når billedet er bygget, og giver dig mulighed for at bruge git i følgende instruktioner.
Gitmike-tema: de anbefaler at klone deres repo direkte
Kør git klon https://github.com/makotokw/redmine-theme-gitmike.git offentlig / temaer / gitmike
Linjen gemmer det klonede projekt i den relevante mappe offentlighed / temaer
Skjul sidebjælke: Den samme procedure kan anvendes på plugins. Denne kræver intet mere end at placere den klonede mappe i plugins-mappen
Kør git klon https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide
Klippebord Billedpasta: Dette synes også den typiske procedure, klone repoen, og du er god til at gå
Kør git klon https://github.com/RubyClickAP/clipboard_image_paste.git plugins / clipboard_image_paste
Men hvis du læs lidt mere ser du, at "det anbefales at installere RMagick perle, ellers vises vedhæftede billeder ikke i eksporterede PDF-filer". Så hvordan gør vi det? Det skal være så let som
RUN perle installer rmagick
men du ved sandsynligvis, at perlen skal bygges, før den kan installeres, så du skal installere nogle pakker, før du installerer perlen. Den linje, du virkelig har brug for, er
Kør apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \
&& perleinstallere rmagick
Alt i en kommando, adskilt i to linjer for læsbarhed.
Den originale forfatter af dette plugin giver ikke en version til Redmine 4, men en søgning efter plugin-navnet i GitHub landede mig på et projekt, der gør: RubyClickAP / clipboard_image_paste.
Tilføjelse af et plugin eller et tema fra en downloadet kilde
A1-tema er et godt eksempel til at illustrere de tilfælde, hvor du har kilden, men ikke en URL, der skal downloades under byggeprocessen. En mulighed i tilfælde som denne er at give kilden til byggeprocessen. På den måde føjes indholdet til billedet uden at downloade det
KOPI a1 offentlig / temaer / a1
Dette kræver, at mappen a1 er på det samme sted, som Dockerfile er.
Nu er du klar til at opbygge dit billede, så åbn en terminal, hvor din Dockerfile er og udfør
docker build -t min-redmine.
Når den er bygget, kan du køre dit billede med
docker run -it -p 3000: 3000 - navn min-redmine min-redmine
Gå videre og åbn http: // localhost: 3000 for at se din brugerdefinerede Redmine!
Redmine efter tilpasning
Nogle tip til at tilføje flere plugins
For at prøve nye plugins er det altid bedre at bruge en frisk Redmine-beholder. Det var sådan jeg indså, at rmagick kræver, at nogle pakker skal installeres. Kør først en forkastelig forekomst af Redmine med
docker run --rm -d -p 3000: 3000 - navn test-redmine redmine
og indtast derefter forekomsten med
docker udfører -det test-redmine bash
Der kan du installere OS-pakker, perler eller køre migrationer. Bare husk trinnene, så du kan tilføje dem til din Dockerfile!
Upload af dit brugerdefinerede billede til Docker Hub
Det billede, du lige har bygget, er kun tilgængeligt for dit lokale miljø. Hvad hvis du vil gøre det tilgængeligt for andre, lad os sige til alle? Naturligvis kan du uploade Dockerfile og relaterede filer til en git repo, og de interesserede kan selv opbygge billedet. Men Docker giver dig også mulighed for at uploade det indbyggede billede til deres registreringsdatabase. For at oprette en konto i hub.docker.com og også oprette et lager til dit billede. Log derefter på terminalen som denne
docker-login
Tag dit billede, så det kan uploades til din repo
docker tag my-redmine: seneste lcofre / redmine: seneste
og skub det sådan ud
docker push lcofre / redmine: seneste
Docker-billedet i Docker-registreringsdatabasen
Nu kan enhver prøve dit billede 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 personlig version tilgængelig i Docker-registreringsdatabasen. Del dine kommentarer eller spørgsmål nedenfor.
Trimning af Docker-billedstørrelse
Du finder ud af, at Dockerfile i repoen sluttede mange linjer i en. Dette er en Docker-anbefaling om at lave mindre billeder. Du kan finde det råd og andre i https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
En anden anbefaling for at reducere billedets endelige størrelse er at bruge den alpine version af Redmine
FRA Redmine: alpin
Alpine er en anden linux distribution. I stedet for at bruge apt til at installere pakker skal du bruge apk.
Et sidste tip: De pakker, vi har installeret med apt i Dockerfile, er ikke længere nødvendige efter billedet er bygget. Du kan følge den bedste praksis med at bruge flertrins-builds: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds
Praksisen med at bevare et Docker-billede i lille størrelse hjælper især når du skalerer antallet af tilfælde, men reducerer også angreboverfladen på dit billede.
Den ultimative Redmine -opgradering? Let.
Få alle kraftfulde værktøjer til perfekt projektplanlægning, styring og kontrol i en software.