en
Språk
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI-översättning
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Hur du skapar din anpassade Redmine Docker-bild

6/16/2020
8 minuter
Lukáš Beňa
Redmine är ett av de mest populära verktygen för projektledning och problemspårning. Om du provade det eller var tvungen att installera det i en produktionsmiljö vet du förmodligen också att det finns en officiell docker-avbildning som avsevärt förenklar installation och skalning för miljöer med hög efterfrågan.

Redmine innan anpassning

Anmärkningar: Redmine native docker finns på https://hub.docker.com/_/redmine. Här kan du också hitta bra instruktioner om hur du fyller i en extern databas och monterar externa mappar (för att kunna installera plugins).

Om du är som jag och föredrar att direkt se koden för att skapa en anpassad Redmine Docker-bild kan du gå till github.com/lcofre/redmine och kontrollera Dockerfile.

Redmine Docker-bilden är en bra utgångspunkt, även om du förmodligen vill anpassa den med plugins och teman som du vill. I det här sättet kommer vi att bygga en Docker-bild baserad på den officiella bilden, lägga till några teman och plugins och ladda upp den till dockningsregistret.

För enkelhets skull använder vi inte en extern databas utan en intern databas i själva Redmine-behållaren. För en produktionsmiljö rekommenderas det dock att skapa en dedicerad lagringsbehållare.


Plugins och teman

Vi valde några plugins och teman för att illustrera olika sätt att lägga till dem till Redmine:

  • Dölj sidofältet, en plugin för att möjliggöra mer skärmutrymme, särskilt när du skriver problem
  • Klistra in urklipp, för att bifoga skärmdumpar som klistras in från urklipp i stället för att välja en fil
  • A1 och Gitmike, två teman för att ändra UI: s utseende

Vi utesluter plugins som kräver en databasmigrering, eftersom du behöver en befintlig databas. Kommentera nedan om du behöver installera ett plugin som behöver migrera, eftersom vi har bra idéer för dig.


Skriva Dockerfile

En Dockerfile är ett recept på hur man bygger en Docker-bild. Det första faktum som vi kommer att lära oss här är att vi måste basera vår bild på någon annan bild, så vi använder den officiella för Redmine

FRÅN Redmine

Den här första raden i Dockerfile kommer att basera eller avbilda den senaste och bästa bilden, 4.1.0 i skrivande stund. Eftersom detta kommer att ta tag i vilken version som är senaste, kanske du föredrar att använda en specifik version för att undvika oväntade nya versioner som kan bryta bildens uppbyggnad

FRÅN Redmine: 4.1.0


Använda Git för att få komponenterna

I de flesta fall har teman och plugins gitförvar där vi kan ladda ner den senaste koden. Detta är fallet för följande tre komponenter.

Basen Redmine-bilden kommer utan git, men vi kan lägga till den till bilden på detta sätt

KÖR apt installation -y git

Detta kommer att köras när bilden är byggd och låter dig använda git i följande instruktioner.

Gitmike-tema: de rekommenderar att klona sin repo direkt

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

Linjen sparar det klonade projektet i lämplig mapp public / teman

Dölj sidofältet: Samma procedur kan tillämpas på plugins. Den här kräver inget annat än att placera den klonade mappen i plugin-mappen

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

Urklipp Bildklistra: Detta verkar också vara den typiska proceduren, klona repo och du är bra att gå

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

Men om du läs lite mer ser du att "det rekommenderas att installera RMagick-pärla, annars visas inte bifogade bilder i exporterade PDF-filer". Så hur gör vi det här? Det borde vara lika enkelt som

KÖR pärla installera rmagick

men du vet förmodligen att pärla måste byggas innan den kan installeras, så du måste installera några paket innan du installerar pärla. Linjen du verkligen behöver är

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

       && gem installera rmagick

Allt i ett kommando, separerat i två rader för läsbarhet.

Den ursprungliga författaren till detta plugin ger inte en version för Redmine 4, men en sökning av plugin-namnet i GitHub landade mig på ett projekt som gör: RubyClickAP / clipboard_image_paste.


Lägga till ett plugin eller ett tema från en nedladdad källa

Smakämnen A1-tema är ett bra exempel för att illustrera de fall där du har källan, men inte en URL att ladda ner under byggprocessen. Ett alternativ i fall som detta är att ge källan till byggprocessen. På så sätt läggs innehållet till i bilden utan att ladda ner det

COPY a1 public / teman / a1

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

Nu är du redo att bygga din bild, så öppna en terminal där din Dockerfile är och kör

docker build -t my-redmine.

När den är byggd kan du köra din bild med

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

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

Redmine efter anpassning


Några tips för att lägga till fler plugins

För att testa nya plugins är det alltid bättre att använda en ny Redmine-behållare. Det var så jag insåg att rmagick kräver att vissa paket installeras. Kör först en kasserbar instans av Redmine med

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

och ange sedan instansen med

docker exekvera -it test-redmine bash

Där kan du installera OS-paket, ädelstenar eller köra migreringar. Kom bara ihåg stegen så att du kan lägga till dem i din Dockerfile!


Ladda upp din anpassade bild till Docker Hub

Bilden du just har byggt är endast tillgänglig för din lokala miljö. Tänk om du vill göra det tillgängligt för andra, låt oss säga till alla? Naturligtvis kan du ladda upp Dockerfile och relaterade filer till en git repo, och de som är intresserade kan bygga bilden själva. Men Docker låter dig också ladda upp den inbyggda bilden till deras register. Skapa därför ett konto i hub.docker.com och skapa också ett arkiv för din bild. Logga in på terminalen så här

docker-inloggning

Tagga din bild så att den kan laddas upp till din repo

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

och tryck det så här

docker push lcofre / redmine: senaste

Docker-bilden i Docker-registret

Nu kan alla pröva din bild genom att göra

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

Det är allt! Så här går du från en standard Redmine-installation till en personlig version som är tillgänglig i Docker-registret. Vänligen dela dina kommentarer eller frågor nedan.


Trimma Docker-bildstorleken

Du kommer att upptäcka att Dockerfile i repo förenade många linjer i en. Detta är en Docker-rekommendation för att göra mindre bilder. Du kan hitta det råd och andra i https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

En annan rekommendation för att minska den slutliga storleken på bilden är att använda den alpina versionen av Redmine

FRÅN Redmine: alpin

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

Ett sista tips: paketen vi installerade med apt i Dockerfile behövs inte längre efter att bilden har byggts. Du kan följa de bästa metoderna för att använda flerstegsbyggnader: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Övningen med att hålla en liten Docker-bild hjälper särskilt när du skalar upp antalet instanser, men minskar också attackytan på din bild.

Den ultimata Redmine -uppgraderingen? Lätt.

Få alla kraftfulla verktyg för perfekt projektplanering, hantering och kontroll i en programvara.

Upptäck Easy Redmine

Prova Easy Redmine i 30 dagars gratis provperiod

Fullständiga funktioner, SSL-skyddad, dagliga säkerhetskopior, i din geolokalisering