如何创建您自定义的Redmine Docker镜像

10/22/2023
8 минути
卢卡什·贝尼
Redmine是最受欢迎的项目管理和问题跟踪工具之一。如果您尝试过它或者不得不在生产环境中安装它,您可能也知道有一个官方的Docker镜像,可以极大地简化安装和扩展以满足高需求环境的要求。

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

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

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

Изображението на Redmine 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 / теми

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

Клониране на 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.


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

- Тема А1 е добър пример за илюстриране на случаите, когато имате източника, но не и 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

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


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

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

вход за докер

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

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

и го натиснете така

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

Образът на Докер в регистъра на Докер

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

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

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


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

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

Друга препоръка за намаляване на крайния размер на изображението е използването на алпийската версия на Redmine

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

Alpine е различна дистрибуция на 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 保护,每日备份,在您的地理位置