bg
EZİK
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
Превод от изкуствен интелект
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Как да създадете персонализиран Docker образ на Redmine

6/16/2020
9 минути
Лукъш Беня
Редмайн е един от най-популярните инструменти за управление на проекти и проследяване на проблемите. Ако сте го опитали или трябва да го инсталирате в производствена среда, вероятно знаете, че има официален образ на Docker, който значително опростява инсталирането и компютъризирането за среда с високо търсене.

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

Забележка: Можете да нативния докер на Redmine на https://hub.docker.com/_/redmine. Тук можете да дадете и добри инструкции за това, как да попълните външна база данни и да монтирате външни папки (за да можете да инсталирате плъгини).

Ако сте като мен и предпочитате да видите директно код за изграждане на персонализиран Docker образ на Redmine, можете да отидете на github.com/lcofre/redmine и да проверите Dockerfile.

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

Заради опростяването, няма да използвате външна база данни, а вместо тази вътрешна база данни в този контейнер на Redmine. За производствена среда обаче е препоръчително да се настрои отделен контейнер за съхранение.


Плъгини и теми

Избрахме няколко плъгина и теми, за да илюстрираме различни начини за добавяне им към Redmine:

Изключваме плъгини, които изискват миграция върху базата данни, тъй като вие е необходима предварително съществуваща база данни. Моля, коментирайте по-долу, ако имате нужда да инсталирате плъгин, който изисква миграции, тъй като имате добри идеи за вас.


Написване на Dockerfile

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

ОТ Redmine

Този първи ред от Dockerfile ще базира или образец на последния и най-добър образец, 4.1.0 в момента на писане. Тъй като това ще хване каквото и да е версията, която е най-нова, може да предпочетете да използвате конкретна версия, за да избегнете неочаквани нови версии, които могат да нарушат изграждането на този образ

ОТ Redmine: 4.1.0


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

В повечето случаи темите и плъгините имат git хранилища, от където можем да изтеглим най-новия код. Това е така за трите следните компонента.

Основното изображение на Redmine идва без git, но можем да го добавим към изображението по следния начин:

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

Това ще бъде изпълнено, когато изображението се създаде и ще ви позволи да използвате git в следващите инструкции.

Тема Gitmike: те препоръчват да клонирате директно техния репо

Клониране на RUN git https://github.com/makotokw/redmine-theme-gitmike.git обществена / теми / gitmike

Тази линия ще запази клонирания проект в подходящата папка public/themes

Скриване на страничната лента: Същата процедура може да се приложи и за плъгини. Това само поставянето на изисква клонираната папка в папката на плъгините

Клониране на RUN git https://gitlab.com/bdemirkir/sidebar_hide.git приставки / sidebar_hide

Клипборд Паста за изображения: Това също изглежда като типична процедура, клонирайте репото и сте готови да продължите

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

Но ако процедура малко повече, ще видите, че "се препоръчва да се инсталира гемът RMagick, в противен случай прикачените изображения няма да се показват в експортираните PDF файлове". Така че как да го направим? Трябва да бъде толкова лесно, колкото:

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

но вероятно знаете, че гемът трябва да бъде построен, преди да може да бъде инсталиран, така че трябва да инсталирате някои пакети преди да инсталирате гема. Линията, която наистина ви трябва, е:

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

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

Всичко в една команда, разделена на две реда за по-добра четвъртост.

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


Добавяне на плъгин или тема от изтеглен източник

Тема A1 е добър пример за илюстриране на случаите, когато имате източника, но не и URL за изтегляне по време на процеса на създаване. Една опция в такива случаи е за предоставяне на източника на процеса на създаване. Това съдържание се добавя към изображението, без да се изтегля.

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

Тази папка a1 изисква да бъде на това място, където е Dockerfile.

Сега сте готови да създадете изображението си, така че отворите терминал там, където е Dockerfile, и изпълнете

docker build -t my-redmine.

След като е създадено, ще можете да стартирате изображението си с

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

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

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


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

За да опитате нови плъгини, винаги е по-добре да използвате нов контейнер на Redmine. Така разбрах, че rmagick е инсталиран на някои пакети. Първо, стартирайте изтриваемата инстанция на Redmine с

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

и след това влизате в инстанцията с

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

Там можете да инсталирате OS пакети, гемове или да изпълните миграции. Просто запомнете стъпките, за да ги добавите към Dockerfile!


Качване на персонализирано изображение в Docker Hub

Изображението, което току-що построихте, е достъпно само за вашата локална среда. Какво ако искате да направите достъпно за други, кажете за всички? Разбира се, можете да качите Dockerfile и да свържете файлове в git repo, а заинтересованите могат да построят изображението сами. Но Docker ви позволява да качите построеното изображение в техническия регистър. За това създайте акаунт в hub.docker.com и също така създайте хранилище за изображението си. След това влезте в терминала по следния начин

вход за докер

Маркирайте изображението си, така че може да бъде качено във вашето хранилище

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

и го качете по следния начин

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

Изображението на Docker в регистъра на Docker

Сега всеки може да опита вашето изображение, като направи

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

Това е! Така можете да преминете от инсталиран стандартен Redmine до персонализирана версия, достъпна в регистъра на Docker. Моля, споделете коментарите или въпросите си по-долу.


Намаляване на размера на Docker изображението

Ще откриете, че Dockerfile в репо съединява много редове в един. Това е препоръка на Docker, за да се навредят по-малки изображения. Можете да намерите този съвет и други в https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Още една препоръка за намаляване на крайния размер на изображението е за използване на алпайн версията на Redmine

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

Алпайн е различна дистрибуция на Linux. Вместо това, за да използвате apt за инсталиране на пакети, трябва да използвате apk.

Още един съвет: пакетите, които инсталирате с apt в Dockerfile, вече не са нужни след като изображението е построено. Можете да изберете най-добрата практика за използване на многоетажни конструкции: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Практиката да се поддържа малко Docker изображение помага особено при увеличаване на броя на инстанциите, но също така намалява атаката на повърхността на изображението ви.

Крайната надстройка на Redmine? Лесна.

Получете всички мощни инструменти за перфектно планиране, управление и контрол в един софтуер.

Открийте Easy Redmine

Изпробвайте Easy Redmine в безплатен пробен период от 30 дни

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