Як створити свій власний образ Docker для Redmine.

6/16/2020
9 minut
Лукаш Беньа
Redmine є одним з найпопулярніших інструментів для управління проектами тареженди та віенде Якщо ви вже пробували його або мали досвід установки виробничого сереговища,понвища, понвища, новища існує офіційний образ docker, який значно спрощує установку та масштабунанритиове дел едовищ.

Redmine do nového

Poznámka: Нативний Docker Redmine можна знайти на https://hub.docker.com/_/redmine. Тут ви також можете знайти хороші інструкції щодо наповнення зовнэанЅнатзинбиої я зовнішніх папок (для можливості встановлення плагінів).

Якщо ви, як і я, віддаєте перевагу безпосередньому переграляду кодаєте перевагу безпосередньому переграляду кодутвсорононсвадоренонсвадоренонсвадореновствазосередньому ження Docker Redmine, виможете перейти на github.com/lcofre/redmine použijte Dockerfile.

Зображення Docker Redmine - це хороша стартова точка, хоча ви, ймовірно, захочете налашполавалашполаватиполаватиполаватиполаватиполаватиполаватиполаватиполаватиполаватиполаватиполаватиповату a та темами за своїм смаком. У цьому посібнику ми створимо зображення Docker на основі офіційного, додетаменпом a та завантажимо його до реєстру Docker.

З метою спрощення ми не будемо використовувати зовнішню базу данщення, алі внутрия na téma Redmine. Однак для середовища виробництва рекомендується налаштувати окремий контейнер контейнер


Плагіни та теми

Ми вибрали кілька плагінів та тем, щоб проілюструвати різні способи їх донод

  • Skrýt postranní panel, плагін, що дозволяє отримати більше місця на екрані, особливо прни наіписанні
  • Vložit schránku, для додавання знімків екрану, вставляючи з буфера обміну замість вибору замість вибору
  • A1 to Gitmike, дві теми для зміни вигляду користувацького інтерфейсу

Ми виключаємо плагіни, які потребують міграції бази даних, оскільркипревар чувана база даних. Будь ласка, залиште коментар нижче, якщо вам потрібно встановити плагін, якщо вам потрібно встановити плагін, якщо вам потрібно встановити плагін, якщо вам потрібно встановити плагін, якщо вам потрібно ї, оскільки у нас є хороші ідеї для вас.


Написання Dockerfile

Dockerfile - це рецепт, як створити зображення Docker. Перша річ, яку ми дізнаємося тут, полягає в тому, що ми повинзані базувенанти комусь іншому зображенні, тому ми використовуємо офіційне зображення для Redmi

Z Redmine

Цей перший рядок Dockerfile базує або зображення на найновішому та найкращомужена на найновішому та найкращомузує нт написання. Оскільки це забере будь-яку версію, яка є найновішою, ви можете можете можете віпереретиванпереретив онкретної версії, щоб уникн

Використання Git для отримання компонентів

У більшості випадків теми та плагіни мають репозиторії Git, žádné další novinky cod. Це стосується наступних трьох компонентів.

Базовий образ Redmine поставляється без Git, але ми можемо додати його чно обизоу

SPUSTÍTE apt install -y git

Це буде виконано при побудові образу і дозволить вам використовувати Git у нацтупнувати

Téma Gitmike: вони рекомендують клонувати свій репозиторій безпосередньо

RUN git klon https://github.com/makotokw/redmine-theme-gitmike.git public / themes / gitmike

Цей рядок збереже клонований проект у відповідній папці public/themes

Приховати бічну панель: Той же процес можна застосувати до плагінів. Для цього потрібно лише помістити клоновану папку у папку плагінів

RUN git klon https://gitlab.com/bdemirkir/sidebar_hide.git pluginy / sidebar_hide

Вставка зображення з буферу обміну: Це також здається типовим процесом, клонуйте репозиторій і ви готовібот до

RUN git klon https://github.com/RubyClickAP/clipboard_image_paste.git pluginy / clipboard_image_paste

Але якщо ви прочитаєте трохи більше, то побачите, що "рекомендується встановити гем RMagick, інакше прикріплентраі зодленті зодлентрані зодленуні зодленунь зоденурані зоденурань ображатися v експортованих PDF-файлах". Co зробити? Це повинно бути так само просто, як

RUN gem nainstalovat rmagick

але ви, напевно, знаєте, що гем потрібно побудувати перед тим, як його мовутуна вам потрібно встановити деякі пакети перед встановленням гема. Рядок, який вам дійсно потрібен, це

SPUSTÍTE apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem install rmagick

Все в одній команді, розділені на дві лінії для зручності читання.

Оригінальний автор цього плагіна не надає версії для Redmine 4, але пошук назавпи G мене до проекту, який має: RubyClickAP / clipboard_image_paste.


Додавання плагіна або теми з завантаженого джерела

Téma A1 є хорошим прикладом для ілюстрації випадків, коли у вас є джерелян, алєаненмана під час процесу побудови. Один з варіантів у таких випадках - надати джерело процесу побудови. Таким чином, вміст додається до образу без завантаження його

KOPIE a1 veřejné / témata / a1

Pokud je to stejné, jako je a1, je v tomto případě dockerfile.

Тепер ви готові побудувати свій образ, тому відкрийте термінал там, де зитьходе зитьхо onaйте

stavitel doku -t můj-redmine.

Після побудови ви зможете запустити свій образ за допомогою

docker run -it -p 3000: 3000 - jméno my-redmine my-redmine

Перейдіть за адресою http://localhost:3000, щоб побачити свій власний Redmine!

Redmine після налаштування


Деякі поради щодо додавання більше плагінів

Щоб випробувати нові плагіни, завжди краще використовувати свіжий контейнер Redmine. Так я розумів, що для роботи rmagick потрібно встановити деякі пакети. Спочатку запустіть контейнер Redmine, який можна відкинути, з

docker run - rm -d -p 3000: 3000 - jméno test-redmine redmine

а потім увійдіть до екземпляру з

docker exec -it test -redmine bash

Там ви можете встановлювати пакети ОС, геми або запускати міграції. Просто запам'ятайте кроки, щоб ви могли додати їх до свого Dockerfile!


Завантаження вашого власного зображення до Docker Hub

Зображення, яке ви щойно створили, доступне лише для вашого локального середовия Що, якщо ви хочете зробити його доступним для інших, скажімо, для всіх? Звичайно, ви можете завантажити Dockerfile та пов'язані файли до git-репозиторіютьіжвю, ціжвію творити зображення самостійно. Але Docker також дозволяє вам завантажити побудоване зображення до їх реєстру. Для цього створіть обліковий запис на hub.docker.com та створіть репозиторій дляінж. дляя сво. Потім увійдіть в термінал таким чином:

přihlášení do doku

Позначте своє зображення, щоб його можна було завантажити до вашого репозиторепозит

docker tag my-redmine: latest lcofre / redmine: latest

і завантажте його таким чином

dokovací push lcofre / redmine: nejnovější

Зображення Docker у реєстрі Docker

Тепер будь-хто може спробувати ваше зображення, виконавши

docker run -it -p 3000: 3000 - jméno my-redmine lcofre / redmine

No nic! Ось як ви переходите від стандартної установки Redmine до персоналізованої верстріреї верстріреї верстріреї . Будь ласка, поділіться своїми коментарями або запитаннями нижче.


Зменшення розміру зображення Docker

Ви знайдете, що Dockerfile v репозиторії об'єднав багато рядків в один. Це рекомендація Docker, щоб зменшити розмір зображень. Ви можете знайти цей та інші поради на https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Ще одна рекомендація для зменшення кінцевого розміру зображення - викуривайтвикуриваствиковистовиковистовиковистовикоривиствикового рсію Redmine

Z Redmine: alpine

Alpine - je nová verze Linuxu. Замість apt для встановлення пакетів потрібно використовувати apk.

Остання порада: пакети, які ми встановили за допомогою apt v Dockerfile, Velká Británie ови зображення. Ви можете дотримуватися найкращої практики використання багатоетапних збірок: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Практика збереження невеликого розміру зображення Docker допомагає особливо піккккає особливасьриоанні і екземплярів, а також зменшує поверхню атаки на ваше зображення.

Оновлення Redmine на вищий рівень? Легко.

Отримайте всі потужні інструменти для ідеального планування, управліннотронка тонка ому програмному забезпеченні.

Відкрийте для себе Easy Redmine

Спробуйте Easy Redmine у ​​30-денній безкоштовній пробній версії

Повнофункціональний, захищений SSL, щоденне резервне копіювання, у вашій гео