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

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.