Kuidas luua oma kohandatud Redmine Dockeri pilt

1/1/2024
8 minutes
Lukáš Beňa
Redmine on üks populaarsemaid tööriistu projektijuhtimiseks ja probleemide jälgimiseks. Kui olete seda proovinud või pidite selle tootmiskeskkonda installima, siis tõenäoliselt teate ka, et on olemas ametlik Dockeri pilt, mis oluliselt lihtsustab paigaldamist ja skaleerimist kõrge nõudlusega keskkondades.

Redmine enne kohandamist

Märkus: Redmine'i algne docker on saadaval aadressil https://hub.docker.com/_/redmine. Siit leiate ka head juhised, kuidas täita välise andmebaasi ja kinnitada väliseid kaustu (pluginatega installimiseks).

Kui olete minu sarnane ja eelistate otse näha kohandatud Redmine Dockeri koodi, võite minna aadressile github.com/lcofre/redmine ja vaadata Dockerfile'i.

Redmine Dockeri pilt on hea lähtepunkt, kuigi tõenäoliselt soovite seda kohandada oma meelepäraste pluginatega ja teemadega. Selles juhendis loome Dockeri pildi ametliku põhjal, lisame mõned teemad ja pluginad ning laadime selle dockeri registrisse üles.

Lihtsuse huvides ei kasuta me väliseid andmebaase, vaid Redmine'i konteineri sisemist andmebaasi. Tootmiskeskkonnas soovitatakse siiski luua eraldi salvestusmahuti.


Pluginad ja teemad

Valisime mõned pluginad ja teemad, et näidata erinevaid viise nende lisamiseks Redmine'ile:

  • Peida küljepaan, plugin, mis võimaldab rohkem ekraaniruumi, eriti probleemide kirjutamisel
  • Kleebi lõikelaualt, et lisada ekraanipilte lõikelaua kleepimise teel faili valimise asemel
  • A1 ja Gitmike, kaks teemat, mis muudavad kasutajaliidese välimust

Jätame välja pluginad, mis nõuavad andmebaasi migratsiooni, kuna vajate eelnevalt olemasolevat andmebaasi. Kui soovite installida pluginat, mis vajab migratsiooni, siis palun kommenteerige allpool, kuna meil on teile häid ideid.


Dockerfile'i kirjutamine

Dockerfile on retsept Dockeri pildi loomiseks. Esimene fakt, mida siin õpime, on see, et peame oma pildi loomiseks kasutama mõnda muud pilti, seega kasutame Redmine'i ametlikku pilti

FROM Redmine

Selle Dockerfile'i esimene rida põhineb uusimal ja suurepärasemal pildil, kirjutamise ajal versioon 4.1.0. Kuna see haarab alati uusima versiooni, võite eelistada kasutada konkreetset versiooni, et vältida ootamatuid uusi versioone, mis võivad selle pildi ehituse rikkuda

FROM Redmine:4.1.0


Komponentide hankimine Git'i abil

Enamikul juhtudel on teemadel ja pluginatel Git'i hoidlad, kust saame alla laadida viimase koodi. See kehtib järgmiste kolme komponendi kohta.

Põhiline Redmine'i pilt ei sisalda Git'i, kuid saame selle pildile lisada järgmiselt

RUN apt install -y git

See käivitatakse pildi ehitamisel ja võimaldab teil kasutada Git'i järgmistes juhistes.

Gitmike teema: nad soovitavad kloonida oma repositooriumi otse

RUN git clone https://github.com/makotokw/redmine-theme-gitmike.git public/themes/gitmike

Rida salvestab kloonitud projekti vastavasse kausta public/themes

Küljepaneeli peitmine: Sama protseduuri saab rakendada ka pluginatele. Selleks pole vaja muud kui kloonitud kausta paigutamine pluginate kausta

RUN git clone https://gitlab.com/bdemirkir/sidebar_hide.git plugins/sidebar_hide

Lõikelaua pildi kleepimine: See tundub samuti tavaline protseduur, kloonige repositoorium ja olete valmis

RUN git clone https://github.com/RubyClickAP/clipboard_image_paste.git plugins/clipboard_image_paste

Kuid kui te loete veidi rohkem siis näete, et "soovitatakse installida RMagicki gem, vastasel juhul ei kuvata manustatud pilte eksporditud PDF-failides". Kuidas me seda teeme? See peaks olema sama lihtne kui

RUN gem install rmagick

kuid tõenäoliselt teate, et gem tuleb ehitada enne selle installimist, seega peate enne gem'i installimist installima mõned paketid. Tegelikult vajate järgmist rida

RUN apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem install rmagick

Kõik ühes käskluses, kahele reale jaotatuna parema loetavuse huvides.

Selle pistikprogrammi algne autor ei paku versiooni Redmine 4 jaoks, kuid pistikprogrammi nime otsing GitHubis viis mind projekti, mis seda teeb: RubyClickAP/clipboard_image_paste.


Pistiku või teema lisamine allalaaditud lähtekoodist

A1 teema on hea näide juhtudest, kus teil on lähtekood, kuid mitte URL-i allalaadimiseks ehitusprotsessi ajal. Üks võimalus sellistel juhtudel on lähtekood anda ehitusprotsessile. Sel viisil lisatakse sisu pildile ilma selle allalaadimiseta

COPY a1 public/themes/a1

Selleks peab a1 kaust olema samas kohas, kus Dockerfile asub.

Nüüd olete valmis oma pilti ehitama, avage terminal seal, kus teie Dockerfile asub, ja käivitage

docker build -t my-redmine .

Pärast ehitamist saate oma pildi käivitada

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

Minge aadressile http://localhost:3000, et näha oma kohandatud Redmine'i!

Redmine pärast kohandamist


Mõned näpunäited rohkemate pistikute lisamiseks

Uute pistikute proovimiseks on alati parem kasutada värskeid Redmine'i konteinereid. Nii sain aru, et rmagick nõuab mõnede pakettide installimist. Kõigepealt käivitage Redmine'i kõrvaldatav eksemplar järgmiselt

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

ja sisestage seejärel eksemplar järgmiselt

docker exec -it test-redmine bash

Seal saate installida operatsioonisüsteemi pakette, gem'e või käivitada migratsioone. Lihtsalt pidage meeles sammud, et saaksite need oma Dockerfile'isse lisada!


Oma kohandatud pildi üleslaadimine Docker Hubi

Pilt, mille sa just ehitasid, on saadaval ainult sinu kohalikus keskkonnas. Mis siis, kui soovid seda teistele kättesaadavaks teha, näiteks kõigile? Muidugi, saad üles laadida Dockerfile'i ja sellega seotud failid git repo-sse ning huvitatud isikud saavad ise pildi ehitada. Kuid Docker võimaldab sul ka üles laadida ehitatud pildi nende registrisse. Selleks loo konto aadressil hub.docker.com ja loo ka oma pildi jaoks repositoorium. Seejärel logi terminalis sisse järgmiselt

docker login

Märgista oma pilt, et see saaks üles laadida sinu repositooriumisse

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

ja lükka see üles järgmiselt

docker push lcofre/redmine:latest

Dockeri pilt Dockeri registris

Nüüd saab igaüks sinu pilti proovida, tehes järgmist

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

See on kõik! Nii saad minna tavalisest Redmine'i installist isikupärastatud versioonini, mis on kättesaadav Dockeri registris. Palun jaga oma kommentaare või küsimusi allpool.


Dockeri pildi suuruse kärpimine

Märkad, et repo-s olev Dockerfile ühendas paljud read üheks. See on Dockeri soovitus, et saada väiksemaid pilte. Saad leida selle ja teisi nõuandeid aadressilt https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Veel üks soovitus lõppsuuruse vähendamiseks on kasutada Redmine'i alpine versiooni

FROM Redmine:alpine

Alpine on erinev Linuxi distributsioon. Selle asemel, et kasutada pakettide installimiseks apt-i, pead kasutama apk-d.

Viimane näpunäide: Dockerfile-s apt-ga installitud pakette pole enam pärast pildi ehitamist vaja. Saad järgida parimat tava, kasutades mitmeastmelisi ehitusi: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Väikese suurusega Dockeri pildi hoidmise tava aitab eriti siis, kui suurendad eksemplaride arvu, kuid vähendab ka rünnaku pinda sinu pildil.

The ultimate Redmine upgrade? Easy.

Get all powerful tools for perfect project planning, management, and control in one software.

Avasta Easy Redmine

Proovige Easy Redmine'i 30 päeva tasuta prooviperioodi jooksul

Täielikud funktsioonid, SSL-kaitse, igapäevased varukoopiad, teie geolokatsioonis