Korleis lage di eiga tilpassa Redmine Docker-bilete

6/16/2020
8 dakikadır.
Lukaš Beňa
Redmine er eitt av dei mest populære verktøya for prosjektstyring og oppfølging av problem. Om du har prøvd det eller måtte installere det i ein produksjonsmiljø, veit du sannsynlegvis også at det finst eit offisielt Docker-bilete som gjer installasjon og skalering mykje enklare for høgtrafikkmiljø.

Çevirmek için Redmine

Marka: Redmine native docker kan finnes på https://hub.docker.com/_/redmine. Her kan du også finne gode instruksjoner om hvordan du fyller en ekstern database og monterer eksterne mapper (for å kunne installere plugins).

Hvis du er som meg og foretrekker å se koden direkte for å bygge et tilpasset Redmine Docker-bilde, kan du gå til github.com/lcofre/redmine og sjekke Dockerfile.

Redmine Docker-bildet er et godt utgangspunkt, selv om du sannsynligvis vil tilpasse det med plugins og temaer du liker. I denne veiledningen vil vi bygge et Docker-bilde basert på det offisielle, legge til noen temaer og plugins, og laste det opp til docker-registret.

Av enkelhets skyld vil vi ikke bruke en ekstern database, men en intern database i Redmine-containeren selv. For et produksjonsmiljø anbefales det imidlertid å sette opp en dedikert lagringscontainer.


Eklentiler ve temalar

Vi har valgt noen plugins og temaer for å illustrere forskjellige måter å legge dem til Redmine på:

  • Skjul sidepanelet, en plugin som gir mer skjermplass, spesielt når du skriver saker
  • Lim inn fra utklippstavlen, for å legge ved skjermbilder ved å lime inn fra utklippstavlen i stedet for å velge en fil
  • A1 og Gitmike, to temaer for å endre utseendet på brukergrensesnittet

Vi ekskluderer plugins som krever en databaseoppdatering, da du trenger en eksisterende database. Vennligst kommenter nedenfor hvis du trenger å installere en plugin som krever oppdateringer, da vi har gode ideer til deg.


Skriver Dockerfile

En Dockerfile er en oppskrift på hvordan du bygger et Docker-bilde. Det første vi vil lære her er at vi må basere bildet vårt på et annet bilde, så vi vil bruke det offisielle for Redmine

FRA Redmine

Denne første linjen i Dockerfile vil basere bildet vårt på den nyeste og beste versjonen, 4.1.0 på skrivetidspunktet. Siden dette vil hente hvilken som helst versjon som er nyeste, kan du foretrekke å bruke en spesifikk versjon for å unngå uventede nye versjoner som kan ødelegge byggingen av dette bildet

FRA Redmine:4.1.0


Å bruke Git for å få komponentene

I de fleste tilfeller har temaer og utvidelser git-repositorier der vi kan laste ned den nyeste koden. Dette gjelder for følgende tre komponenter.

Den grunnleggende Redmine-bildet kommer uten git, men vi kan legge det til bildet på denne måten

ÇALIŞTIR apt install -y git

Dette vil bli utført når bildet bygges og vil tillate deg å bruke git i de følgende instruksjonene.

Gitmike-temaet: de anbefaler å klone repoet deres direkte

RUN git klonu https://github.com/makotokw/redmine-theme-gitmike.git kamu / temalar / gitmike

Linjen vil lagre det klonede prosjektet i riktig mappe public/themes

Skjul sidepanelet: Samme prosedyre kan brukes på utvidelser. Denne krever ingenting annet enn å plassere den klonede mappen i utvidelsesmappen

RUN git klonu https://gitlab.com/bdemirkir/sidebar_hide.git eklentileri / sidebar_hide

Pano Görüntü macunu: Dette virker også som den typiske prosedyren, klon repoet og du er klar til å gå

RUN git klonu https://github.com/RubyClickAP/clipboard_image_paste.git eklentileri / clipboard_image_paste

Erkekler hvis du leser litt mer vil du se at "det anbefales å installere RMagick-gem, ellers vil vedlagte bilder ikke vises i eksporterte PDF-filer". Så hvordan gjør vi dette? Det burde være like enkelt som

RUN gem kurulum rmagick

men du vet sannsynligvis at gem må bygges før det kan installeres, så du må installere noen pakker før du installerer gem. Linjen du virkelig trenger er

RUN apt install -y yap-temel imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem install rmagick

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

Den opprinnelige forfatteren av denne utvidelsen gir ikke en versjon for Redmine 4, men en søk etter utvidelsesnavnet på GitHub førte meg til et prosjekt som gjør det: RubyClickAP / clipboard_image_paste.


Legge til en utvidelse eller et tema fra en nedlastet kilde

A1-Temaet er et godt eksempel for å illustrere tilfellene der du har kilden, men ikke en URL å laste ned under byggeprosessen. Ett alternativ i slike tilfeller er å gi kilden til byggeprosessen. På den måten blir innholdet lagt til bildet uten å laste det ned

KOPYA a1 genel / temalar / a1

Dette krever at a1-mappen er på samme sted som Dockerfilen.

Nå er du klar til å bygge bildet ditt, så åpne en terminal der Dockerfilen din er og kjør

docker yapı -t benim-redmin.

Når det er bygget, kan du kjøre bildet med

docker run -it -p 3000: 3000 - adı benim-redmin benim-redmin

Gå videre og åpne http://localhost:3000 for å se ditt tilpassede Redmine!

Redmine etter tilpasning


Noen tips for å legge til flere utvidelser

For å prøve ut nye utvidelser er det alltid bedre å bruke en ny Redmine-container. Det er slik jeg oppdaget at rmagick krever at noen pakker blir installert. Først kjør en kastbar instans av Redmine med

docker çalıştırmak - rm -d -p 3000: 3000 - adı test-redmine redmine

og deretter gå inn i instansen med

docker exec -it testi-redmine bash

Der kan du installere OS-pakker, gems eller kjøre migreringer. Bare husk trinnene slik at du kan legge dem til Dockerfilen din!


Last opp ditt egendefinerte bilde til Docker Hub

Bildet du nettopp bygget er kun tilgjengelig i ditt lokale miljø. Hva om du ønsker å gjøre det tilgjengelig for andre, la oss si for alle? Selvfølgelig kan du laste opp Dockerfilen og relaterte filer til et git-repo, og de interesserte kan bygge bildet selv. Men Docker lar deg også laste opp det bygde bildet til deres register. For dette, opprett en konto på hub.docker.com og opprett også et repository for bildet ditt. Deretter logger du inn i terminalen slik

liman işçisi girişi

Merk bildet ditt slik at det kan lastes opp til ditt repo

docker etiketi my-redmine: latest lcofre / redmine: latest

og push det slik

docker push lcofre / redmine: en yeni

Docker-bildet i Docker-registeret

Nå kan hvem som helst prøve ut bildet ditt ved å gjøre

docker run -it -p 3000: 3000 - adı my-redmine lcofre / redmine

Det er det! Slik går du fra en standard Redmine-installasjon til en tilpasset versjon som er tilgjengelig i Docker-registeret. Vennligst del dine kommentarer eller spørsmål nedenfor.


Redusere størrelsen på Docker-bildet

Du vil oppdage at Dockerfilen ve tekrar yazdım har slått sammen mange linjer til én. Dette er en anbefaling fra Docker for å lage mindre bilder. Du kan finne den anbefalingen og andre på https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

En annen anbefaling for å redusere den endelige størrelsen på bildet er å bruke alpine-versjonen av Redmine

FRA Redmine: alp

Alpine er en annen Linux-distribusjon. I stedet for å bruke apt for å installere pakker, må du bruke apk.

Et siste tips: pakkene vi installerte med apt i Dockerfilen er ikke lenger nødvendige etter at bildet er bygget. Du kan følge beste praksis ved å bruke flertrinnsbygg: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Praksisen med å holde et lite Docker-bilde er spesielt nyttig når antallet instanser skal skaleres opp, men det reduserer også angrepsflaten på bildet ditt.

Redmine'in en iyi performansından mı bahsediyorsunuz? Enkel.

Mükemmel tasarım planı, şekillendirme ve kontrol ve program için tüm bu teknik özellikler.

Oppdag Kolay Redmine

Easy Redmine ve 30 günlük ücretsiz deneme süresine sahip olun

Coğrafya düzenlemelerinde tam işlevsellik, SSL desteği, güncel veri kopyaları