Come creare la tua immagine Docker personalizzata di Redmine.
Redmine prima della personalizzazione
jegyzet: Redmine nativo docker può essere trovato su https://hub.docker.com/_/redmine. Qui puoi trovare anche buone istruzioni su come popolare un database esterno e montare cartelle esterne (per poter installare plugin).
Se sei come me e preferisci vedere direttamente il codice per la creazione di un'immagine Docker personalizzata di Redmine, puoi andare su github.com/lcofre/redmine e controllare il Dockerfile.
L'immagine Docker di Redmine è un buon punto di partenza, anche se probabilmente vorresti personalizzarla con plugin e temi a tuo piacimento. In questo how-to, costruiremo un'immagine Docker basata su quella ufficiale, aggiungeremo alcuni temi e plugin e la caricheremo nel registro docker.
Per semplicità, non utilizzeremo un database esterno ma un database interno nel contenitore Redmine stesso. Tuttavia, per un ambiente di produzione, è consigliabile configurare un contenitore di archiviazione dedicato.
Plugin e Temi
Abbiamo scelto alcuni plugin e temi per illustrare varie modalità di aggiunta a Redmine:
- Nascondi la barra laterale, un plugin per consentire più spazio sullo schermo, soprattutto durante la scrittura di problemi
- Incolla dagli appunti, per allegare screenshot incollando dagli appunti invece di selezionare un file
- A1 e Gitmike, due temi per cambiare l'aspetto dell'interfaccia utente
Escludiamo i plugin che richiedono una migrazione del database, poiché è necessario un database preesistente. Commenta qui sotto se hai bisogno di installare un plugin che richiede migrazioni, poiché abbiamo buone idee per te.
Scrivere il Dockerfile
Un Dockerfile è una ricetta su come creare un'immagine Docker. La prima cosa che impareremo qui è che dobbiamo basare la nostra immagine su un'altra immagine, quindi utilizzeremo quella ufficiale per Redmine
Redmine-től
Questa prima riga del Dockerfile baserà la nostra immagine sull'ultima e migliore immagine, 4.1.0 al momento della scrittura. Poiché questo prenderà qualsiasi versione sia la più recente, potresti preferire utilizzare una versione specifica per evitare nuove versioni inaspettate che potrebbero rompere la creazione di questa immagine
Redmine-től: 4.1.0
Usare Git per ottenere i componenti
Nella maggior parte dei casi, i temi e i plugin hanno repository Git da cui possiamo scaricare il codice più recente. Questo è il caso dei seguenti tre componenti.
L'immagine di base di Redmine viene fornita senza Git, ma possiamo aggiungerlo all'immagine in questo modo
RUN apt install -y GIT
Questo verrà eseguito quando l'immagine viene creata e ti consentirà di utilizzare Git nelle istruzioni seguenti.
Tema Gitmike: consigliano di clonare direttamente il loro repository
RUN git klón https://github.com/makotokw/redmine-theme-gitmike.git nyilvános / themes / gitmike
La linea salverà il progetto clonato nella cartella appropriata public/themes
Nascondi la barra laterale: la stessa procedura può essere applicata ai plugin. Questo richiede solo di posizionare la cartella clonata nella cartella dei plugin
RUN git klón https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide
Incolla immagine negli appunti: anche questo sembra essere la procedura tipica, clona il repository e sei pronto per partire
RUN git klón https://github.com/RubyClickAP/clipboard_image_paste.git plugins / clipboard_image_paste
De ha leggi un po' di più vedrai che "è consigliabile installare la gemma RMagick, altrimenti le immagini allegati non verranno visualizzate nei file PDF esportati". Quindi come facciamo? Dovrebbe essere facile come
Futtassa a gem install rmagick szoftvert
ma probabilmente sai che la gemma deve essere compilata prima di poter essere installata, quindi devi installare alcuni pacchetti prima di installare la gemma. La linea di cui hai veramente bisogno è
Futtassa a telepítést - ha épít-nélkülözhetetlen imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \
&& gem install rmagick
Tutto in un unico comando, separato in due righe per leggibilità.
L'autore originale di questo plugin non fornisce una versione per Redmine 4, ma una ricerca del nome del plugin su GitHub mi ha portato su un progetto che lo fa: RubyClickAP / clipboard_image_paste.
Aggiungere un plugin o un tema da una fonte scaricata
Il tema A1 è un buon esempio per illustrare i casi in cui si ha la fonte, ma non un URL da scaricare durante il processo di creazione. Una opzione in casi come questo è fornire la fonte al processo di creazione. In questo modo il contenuto viene aggiunto all'immagine senza scaricarlo
MÁSOLÁS a1 nyilvános / témák / a1
Questo richiede che la cartella a1 sia nello stesso posto in cui si trova il Dockerfile.
Ora sei pronto per creare la tua immagine, quindi apri un terminale dove si trova il tuo Dockerfile ed esegui
dokkoló építés - my-redmine.
Una volta creata, sarai in grado di eseguire la tua immagine con
dokkoló futtatása -p-3000: 3000 - neve my-redmine my-redmine
Vai avanti e apri http://localhost:3000 per vedere il tuo Redmine personalizzato!
Redmine dopo la personalizzazione
Alcuni consigli per aggiungere più plugin
Per provare nuovi plugin, è sempre meglio utilizzare un nuovo contenitore Redmine. È così che ho capito che rmagick richiede l'installazione di alcuni pacchetti. Prima, esegui un'istanza eliminabile di Redmine con
dokkoló fut - rm -d -p 3000: 3000 - név teszt-redmine redmine
e poi accedi all'istanza con
dokkoló végrehajtja - teszt-redmine bash
Lì puoi installare pacchetti OS, gemme o eseguire migrazioni. Ricorda solo i passaggi in modo da poterli aggiungere al tuo Dockerfile!
Caricamento della tua immagine personalizzata su Docker Hub
L'immagine che hai appena creato è disponibile solo nel tuo ambiente locale. E se volessi renderla disponibile ad altri, diciamo a tutti? Naturalmente, puoi caricare il Dockerfile e i file correlati su un repository git e chi è interessato può creare l'immagine da solo. Ma Docker ti consente anche di caricare l'immagine creata nel loro registro. Per farlo, crea un account su hub.docker.com e crea anche un repository per la tua immagine. Quindi accedi al terminale in questo modo
dokkoló bejelentkezés
Tagga la tua immagine in modo che possa essere caricata nel tuo repository
docker tag my-redmine: legújabb lcofre / redmine: legújabb
e caricala in questo modo
dokkoló push lcofre / redmine: legújabb
L'immagine Docker nel registro Docker
Ora chiunque può provare la tua immagine eseguendo
dokkoló futtatása -p-3000: 3000 - neve my-redmine lcofre / redmine
Ecco fatto! Ecco come passare da un'installazione standard di Redmine a una versione personalizzata accessibile nel registro Docker. Condividi i tuoi commenti o domande qui sotto.
Riduzione delle dimensioni dell'immagine Docker
Troverai che il Dockerfile nel repository ha unito molte righe in una sola. Questa è una raccomandazione di Docker per creare immagini più piccole. Puoi trovare questo consiglio e altri su https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
Un'altra raccomandazione per ridurre le dimensioni finali dell'immagine è quella di utilizzare la versione alpina di Redmine
Redmine-től: alpesi
Alpine è una distribuzione Linux diversa. Invece di usare apt per installare i pacchetti, devi usare apk.
Un ultimo suggerimento: i pacchetti che abbiamo installato con apt nel Dockerfile non sono più necessari dopo la creazione dell'immagine. Puoi seguire la pratica migliore di utilizzare build multi-stage: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds
La pratica di mantenere un'immagine Docker di piccole dimensioni aiuta soprattutto quando si aumenta il numero di istanze, ma riduce anche la superficie di attacco della tua immagine.
L'aggiornamento definitivo di Redmine? Könnyed.
Az összes potenciális eszköz egy zongora, kézi és tökéletes vezérlési program egyetlen szoftverben.