Елате да създадете своя персонализиран Docker в Redmine.

6/16/2020
9 минути
Лукаш Беня -> Лукаш Беня
Redmine è uno degli instrumenti più popolari per la gestione dei progetti e il tracciamento dei problemi. Se lo hai provato o hai dovuto installarlo in un ambiente di produzione, probabilmente sai anche che c'è un'immagine docker ufficiale che semplifica notevolmente l'installazione e la scalabilità per gli ambienti ad alta domanda.

Redmine prima della personalizzazione

Внимание: 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).

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 и управлявайте Dockerfile.

Immagine Docker на Redmine е част от частта, за която има вероятност да персонализирате персонализирането с приставката и темата с вашето допълнение. В това как да, измислете Docker базата на официалното приложение, добавете алкуни теми и плъгини и ги изтеглете в регистъра на докерите.

По-просто, не използваме първоначалната база данни, но не използваме вътрешна база данни в стеса на Redmine. Tuttavia, per un ambiente di produzione, è consigliabile configurare un contenitore di archiviazione dedicatato.


Плъгин и Теми

Възползвайте се от алкуни плъгин и теми за илюстриране на различни модалити на добавяне на Redmine:

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.


Писане на Dockerfile

Un Dockerfile е едно решение за създаване на Docker. La prima cosa che impareremo qui è che dobbiamo basare la nostra immagine su un'altra immagine, quindi utilizzeremo quella ufficiale per Redmine

ОТ Redmine

Questa prima riga del Dockerfile baserà la nostra imagine sull'imagine sull'image e migliore imagine, 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 imagine

ОТ Redmine: 4.1.0


Използвайте Git за получаване на компоненти

Nella maggior parte dei casi, i temi ei plugin hanno repository Git da cui possiamo scaricare il codice più recente. Questo è il caso dei seguenti tre componenti.

L'imagine di base di Redmine viene fornita senza Git, ma possiamo aggiungerlo all'imagine in questo modo

ИЗПЪЛНАЙТЕ apt install -y git

Questo verrà eseguito quando l'imagine viene creata e ti consentirà di utilizzare Git nelle istruzioni seguenti.

Тема Gitmike: consigliano di clonare direttamente il loro repository

Клониране на RUN git https://github.com/makotokw/redmine-theme-gitmike.git обществена / теми / 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 https://gitlab.com/bdemirkir/sidebar_hide.git приставки / sidebar_hide

Incolla immagine negli appunti: anche questo sembra essere la procedura tipica, clona il repository e sei pronto per partire

Клониране на RUN git https://github.com/RubyClickAP/clipboard_image_paste.git приставки / clipboard_image_paste

Но ако leggi un po' di più vedrai che "е препоръчително да инсталирате gemma RMagick, добавяйки всички изображения, които не могат да бъдат визуализирани без PDF файл в спорта". Quindi come facciamo? Dovrebbe essere facile дойде

RUN скъпоценен камък инсталирате rmagick

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 è

RUN apt install -y build-съществена imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem инсталирате rmagick

Tutto in un unico comando, separato in due righe per leggibilità.

Оригиналният автор на този плъгин не е представен на версията за Redmine 4, но не търсите името на плъгина в GitHub, но го прехвърлихме към проекта, който се появи: RubyClickAP / clipboard_image_paste.


Добавяне на плъгин или тема за изтегляне на шрифт

Il тема А1 è un buon esempio per illustrare i casi in cui si ha la fonte, ma non un 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

КОПИРАНЕ a1 обществено / теми / a1

Questo richiede che la cartella a1 sia nello stesso posto in cui si trova il Dockerfile.

Ora sei pronto per creare la tua imagine, quindi apri un terminale dove si trova il tuo Dockerfile ed esegui

docker build -t my-redmine.

Una volta creata, sarai in grado di eseguire la tua immagine con

docker run -it -p 3000: 3000 - име my-redmine my-redmine

Можете да използвате http://localhost:3000, за да персонализирате своя Redmine!

Redmine допо ла персонализиране


Всички съвети за добавяне на плъгин

За да изпробвате новия плъгин, можете да използвате най-добре новия контейнер на Redmine. È così che ho capito che rmagick richiede l'installazione di alcuni pacchetti. Прима, esegui un'istanza eliminabile di Redmine con

docker run --rm -d -p 3000: 3000 - име тест-redmine redmine

e poi accedi all'istanza con

docker exec - това е тест-redmine bash

Можете да инсталирате пакети OS, да ги направите или да мигрирате. Ricorda solo i passaggi in modo da poterli aggiungere al tuo Dockerfile!


Caricamento della tua imagine personalizata 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? Естествено, можете да изтеглите Dockerfile или файл, свързан с хранилището git e chi, което ви интересува, за да създадете самостоятелен образ. Ma Docker ти дава съгласието си за създаване на изображение в този регистър. Първо, създайте акаунт на hub.docker.com и създайте хранилище за вашето изображение. Quindi accedi al terminale в този режим

вход за докер

Tagga la tua immagine in modo che possa essere caricata nel tuo repository

docker tag my-redmine: последен lcofre / redmine: най-нов

e caricala in questo modo

docker push lcofre / redmine: най-късно

Представя си Docker в регистъра на Docker

Ora chiunque può provare la tua immagine eseguendo

docker run -it -p 3000: 3000 - име my-redmine lcofre / redmine

Ecco fatto! Ако преминете към деинсталиране на стандартна инсталация на Redmine с една персонализирана версия, достъпна в регистъра на Docker. Condividi i tuoi commenti o domande qui sotto.


Riduzione delle dimensioni dell'imagine Docker

Troverai che il Dockerfile nel хранилище ha unito molte righe in una sola. Това е команда за изпълнение на Docker за създаване на повече изображения. Puoi trovare questo consiglio e altri su https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Un'tra raccomandazione per ridurre le dimensioni finali dell'imagine è quella di utilizzare la versione alpina di Redmine

ОТ Redmine: алпийски

Alpine е разнообразна дистрибуция на Linux. 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'imagine. Puoi seguire la praksa 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? Лесно.

Ottieni tutti gli instrumenti potenti per una pianificazione, gestione e controllo perfetti del progetto in un unico software.

Scopri Easy Redmine

Prova Easy Redmine безплатно за 30 giorni

Функционалността е завършена, SSL защита, резервни копия, не е геолокализация