en
Език
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI превод
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

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

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

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 защитени, ежедневни архиви, във вашето геолокация