Kuidas luua oma kohandatud Redmine Dockeri pilt

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.