Kuinka luoda oma räätälöity Redmine Docker -kuva

6/16/2020
8 minutes
Lukáš Beňa
Redmine on yksi suosituimmista työkaluista projektinhallintaan ja ongelmanseurantaan. Jos olet kokeillut sitä tai joutunut asentamaan sen tuotantoympäristöön, tiedät varmasti myös, että virallinen Docker-kuvake helpottaa asennusta ja skaalausta korkean kysynnän ympäristöissä.

Redmine ennen mukauttamista

Huomio: Redmine:n alkuperäinen docker-versio löytyy osoitteesta https://hub.docker.com/_/redmine. Täältä löydät myös hyviä ohjeita ulkoisen tietokannan täyttämiseen ja ulkoisten kansiojen liittämiseen (jotta voit asentaa lisäosia).

Jos haluat kuten minä nähdä suoraan koodin räätälöidyn Redmine Docker-kuvan rakentamiseksi, voit siirtyä osoitteeseen github.com/lcofre/redmine ja tarkistaa Dockerfile:n.

Redmine Docker-kuva on hyvä lähtökohta, vaikka todennäköisesti haluat mukauttaa sitä lisäosilla ja teemoilla oman mieltymyksesi mukaan. Tässä ohjeessa rakennamme Docker-kuvan virallisen kuvan pohjalta, lisäämme joitain teemoja ja lisäosia sekä lataamme sen docker-rekisteriin.

Yksinkertaisuuden vuoksi emme käytä ulkoista tietokantaa, vaan Redmine-kontin sisäistä tietokantaa. Tuotantoympäristössä on kuitenkin suositeltavaa asentaa omistettu tallennuskontti.


Lisäosat ja teemat

Olemme valinneet muutamia lisäosia ja teemoja, jotka havainnollistavat erilaisia tapoja lisätä ne Redmineen:

  • Piilota sivupalkki, lisäosa, joka mahdollistaa enemmän näyttötilaa, erityisesti ongelmien kirjoittamista varten
  • Liitä leikepöydältä, jolla voit liittää näyttökuvia suoraan leikepöydältä tiedoston valitsemisen sijaan
  • A1 ja Gitmike, kaksi teemaa, jotka muuttavat käyttöliittymän ulkonäköä

Jätämme pois lisäosat, jotka vaativat tietokannan siirtämistä, koska tarvitset valmiiksi olemassa olevan tietokannan. Jos tarvitset asentaa lisäosan, joka vaatii siirtämisen, jätä kommentti alle, sillä meillä on hyviä ideoita sinulle.


Dockerfilen kirjoittaminen

Dockerfile on resepti Docker-kuvan rakentamiseen. Ensimmäinen asia, jonka opimme täällä, on se, että meidän on perustettava kuva johonkin toiseen kuvaan, joten käytämme virallista Redmine-kuvaa

FROM Redmine

Tämä Dockerfilen ensimmäinen rivi perustaa kuvamme uusimpaan ja parhaaseen kuvaan, 4.1.0 kirjoitushetkellä. Koska tämä hakee aina uusimman version, saatat haluta käyttää tiettyä versiota välttääksesi odottamattomia uusia versioita, jotka saattavat rikkoa tämän kuvan rakentamisen

FROM Redmine:4.1.0


Komponenttien hankkiminen Gitin avulla

Useimmissa tapauksissa teemoilla ja liitännäisillä on git-repositoriot, joista voimme ladata uusimman koodin. Tämä pätee seuraaviin kolmeen komponenttiin.

Pohja-Redmine-kuva ei sisällä gitia, mutta voimme lisätä sen kuvaan seuraavasti

RUN apt install -y git

Tämä suoritetaan, kun kuva rakennetaan, ja se mahdollistaa gitin käytön seuraavissa ohjeissa.

Gitmike-teema: he suosittelevat kloonaamaan heidän repoaan suoraan

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

Tämä rivi tallentaa kloonatun projektin oikeaan kansioon public/themes

Hide Sidebar: Sama menettely voidaan soveltaa liitännäisiin. Tämä ei vaadi muuta kuin kloonatun kansion sijoittamisen liitännäisten kansioon

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

Clipboard Image paste: Tämä vaikuttaa myös tyypilliseen menettelyyn, kloonaa repo ja olet valmis

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

Mutta jos lue hieman lisää huomaat, että "on suositeltavaa asentaa RMagick-kivi, muuten liitetyt kuvat eivät näy PDF-tiedostoissa". Kuinka tämä tehdään? Sen pitäisi olla yhtä helppoa kuin

RUN gem install rmagick

mutta tiedät varmaan, että kiven on rakennettava ennen kuin se voidaan asentaa, joten sinun on asennettava joitain paketteja ennen kiven asentamista. Tarvitsemasi rivi on

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

       && gem install rmagick

Kaikki yhdessä komennossa, jaettuna kahteen riviin luettavuuden vuoksi.

Tämän liitännäisen alkuperäinen tekijä ei tarjoa versiota Redmine 4:lle, mutta liitännäisen nimen etsiminen GitHubista johti projektiin, joka tarjoaa: RubyClickAP/clipboard_image_paste.


Liitännäisen tai teeman lisääminen ladatusta lähteestä

A1-teema on hyvä esimerkki tapauksista, joissa sinulla on lähdekoodi, mutta ei URL-osoitetta lataamista varten rakennusprosessin aikana. Yksi vaihtoehto tällaisissa tapauksissa on antaa lähde rakennusprosessille. Tällä tavoin sisältö lisätään kuvaan lataamatta sitä

COPY a1 public/themes/a1

Tämä edellyttää, että a1-kansio on samassa paikassa kuin Dockerfile.

Nyt olet valmis rakentamaan kuvan, joten avaa terminaali, jossa Dockerfile on, ja suorita

docker build -t my-redmine .

Kun kuva on rakennettu, voit käyttää sitä seuraavasti

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

Mene osoitteeseen http://localhost:3000 nähdäksesi mukautetun Redminen!

Redmine mukauttamisen jälkeen


Joitain vinkkejä lisäliitännäisten lisäämiseen

Uusien liitännäisten kokeilemiseksi on aina parempi käyttää uutta Redmine-konttia. Tämän avulla huomasin, että rmagick vaatii joitain asennettavia paketteja. Aja ensin Redminen hävitettävä instanssi komennolla

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

ja siirry sitten instanssiin komennolla

docker exec -it test-redmine bash

Siellä voit asentaa käyttöjärjestelmän paketteja, kiviä tai suorittaa migraatioita. Muista vain vaiheet, jotta voit lisätä ne Dockerfileesi!


Lataa mukautettu kuva Docker Hubiin

Kuva, jonka juuri loit, on saatavilla vain paikallisessa ympäristössäsi. Entä jos haluat tehdä sen saataville muille, sanotaanko kaikille? Tietysti voit ladata Dockerfile-tiedoston ja siihen liittyvät tiedostot git-repoon, ja kiinnostuneet voivat rakentaa kuvan itse. Mutta Docker mahdollistaa myös rakennetun kuvan lataamisen heidän rekisteriinsä. Siihen luo tili osoitteessa hub.docker.com ja luo myös kuvallesi oma tietovarasto. Sitten kirjaudu sisään terminaalissa näin

docker login

Merkitse kuvasi, jotta se voidaan ladata tietovarastoosi

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

ja lähetä se näin

docker push lcofre/redmine:latest

Docker-kuvan Docker-rekisteri

Nyt kuka tahansa voi kokeilla kuvaa tekemällä näin

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

Siinä kaikki! Näin siirryt tavallisesta Redmine-asennuksesta räätälöityyn versioon, joka on saatavilla Docker-rekisterissä. Jaa kommenttisi tai kysymyksesi alla.


Docker-kuvan koon pienentäminen

Huomaat, että tietovaraston Dockerfile yhdisti monta riviä yhdeksi. Tämä on Dockerin suositus pienempien kuvien luomiseksi. Voit löytää tämän neuvon ja muita osoitteesta https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Toinen suositus kuvan lopullisen koon pienentämiseksi on käyttää Redminen alpine-versiota

FROM Redmine:alpine

Alpine on erilainen Linux-jakelu. Sen sijaan, että käytät apt:ää pakettien asentamiseen, sinun on käytettävä apk:ta.

Viimeinen vinkki: Dockerfilessa apt:lla asennetut paketit eivät enää ole tarpeen kuvan rakentamisen jälkeen. Voit noudattaa parasta käytäntöä käyttämällä monivaiheisia rakennuksia: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Pienikokoisen Docker-kuvan säilyttäminen auttaa erityisesti, kun lisäät instanssien määrää, mutta se myös vähentää hyökkäyspintaa kuvassasi.

Ultimaattinen Redmine-päivitys? Helppoa.

Saat kaikki tehokkaat työkalut täydelliseen projektisuunnitteluun, hallintaan ja valvontaan yhdessä ohjelmistossa.

Löydä Easy Redmine

Kokeile Easy Redmine -ohjelmaa 30 päivän ilmaisella kokeilujaksolla

Täydet ominaisuudet, SSL-suojattu, päivittäiset varmuuskopiot, sijaintisi mukaan