Jak stworzyć własny obraz Redmine w Dockerze.

6/16/2020
9 minutter
Lukáš Beňa -> Łukasz Beňa
Redmine to jedno z najpopularniejszych narzędzi do zarządzania projektami i śledzenia problemów. Jeśli próbowałeś go lub musiałeś go zainstalować w środowisku produkcyjnym, prawdopodobnie wiesz, że istnieje oficjalny obraz docker, który znacznie ułatwia instalacjęla o wysbowane disk.

Redmine przed dostosowaniem

Giv agt: Redmine natywny docker można znaleźć na https://hub.docker.com/_/redmine. Tutaj można również znaleźć dobre instrukcje dotyczące sposobu wypełnienia zewnętrznej bazy danych i zamontowania zewnętrznych folderów (aby móc zainstalować wtyczki).

Jeśli jesteś jak ja i wolisz bezpośrednio zobaczyć kod do budowania niestandardowego obrazu Redmine Docker, możesz przejść do github.com/lcofre/redmine jeg sprawdzić plik Dockerfile.

Obraz Docker Redmine er et godt stykke tid til at finde sted, chociaż prawdopodobnie chciałbyś go dostosować do swoich upodobań za pomocą wtyczek i motywów. W tym poradniku zbudujemy obraz Docker na podstawie oficjalnego, dodamy kilka motywów i wtyczek oraz wgrajmy go do rejestru docker.

Dla uproszczenia nie będziemy korzystać z zewnętrznej bazy danych, ale z wewnętrznej bazy danych w kontenerze Redmine. W środowisku produkcyjnym jednak zaleca się skonfigurowanie dedykowanego kontenera pamięci masowej.


Wtyczki og modywy

Wybraliśmy kilka wtyczek i motywów, aby zilustrować różne sposoby dodawania ich do Redmine:

  • Ukryj pasek boczny, wtyczka umożliwiająca uzyskanie większej przestrzeni ekranowej, zwłaszcza podczas pisania problemów
  • Wklej ze schowka, umożliwiający dołączanie zrzutów ekranu poprzez wklejanie ze schowka zamiast wybierania pliku
  • A1 i Gitmike, dwa motywy zmieniające wygląd interfejsu użytkownika

Wykluczamy wtyczki, które wymagają migracji bazy danych, ponieważ potrzebna jest istniejąca baza danych. Prosimy o commentarz poniżej, jeśli potrzebujesz zainstalować wtyczkę, która wymaga migracji, ponieważ mamy dla Ciebie dobre pomysły.


Pisanie pliku Dockerfile

Plik Dockerfile til przepis na budowanie obrazu Docker. Pierwszą rzeczą, którą się dowiemy, jost to, że musimy opierać nasz obraz na innym obrazie, więc użyjemy oficjalnego dla Redmine

FRA Redmine

Ta pierwsza linia pliku Dockerfile opiera nasz obraz na najnowszym i najlepszym obrazie, 4.1.0 w momencie pisania. Ponieważ to pobierze najnowszą wersję, możesz wolisz użyć konkretnej wersji, aby uniknąć nieoczekiwanych nowych wersji, które mogą zepsuć budowę tego obrazu

FRA Redmine: 4.1.0


Używanie Git do pobierania komponentów

W większości przypadków motywy i wtyczki mają repozytoria git, z których możemy pobrać najnowszy kod. Tak jest w przypadku następujących trzech komponentów.

Podstawowy obraz Redmine ikke zawiera gita, ale możemy dodać go do obrazu w ti sposób:

KØR apt installation -y git

Til zostanie wykonane podczas budowania obrazu i umożliwi korzystanie z gita w następujących instrukcjach.

Motyw Gitmike: zalecają bezpośrednie klonowanie ich repozytorium

Kør git klon https://github.com/makotokw/redmine-theme-gitmike.git offentlig / temaer / gitmike

Ti wiersz zapisze sklonowany projekt w odpowiednim folderze public/themes

Ukryj pasek boczny: Ten sam proces można zastosować do wtyczek. Ta wymaga jedynie umieszczenia sklonowanego folderu w folderze wtyczek

Kør git klon https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide

Klippebord Billedpasta: At również wydaje się typową procedureą, sklonuj repozytorium i jesteś gotowy do działania

Kør git klon https://github.com/RubyClickAP/clipboard_image_paste.git plugins / clipboard_image_paste

Ale jeśli przeczytasz trochę więcej, zobaczysz, że "zaleca się zainstalowanie gemu RMagick, w przeciwnym razie załączone obrazy nie będą wyświetlać się w plikach PDF". Jak til zrobić? Powinno to być takie proste jak

RUN perle installer rmagick

ale prawdopodobnie wiesz, że gem musi zostać zbudowany przed zainstalowaniem, więc musisz zainstalować kilka pakietów przed zainstalowaniem gemu. Wiersz, który naprawdę potrzebujesz, to

Kør apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && perleinstallere rmagick

Wszystko w jednej komendzie, podzielone na dwie linie dla czytelności.

Oryginalny forfatter tej wtyczki ikke dostarcza wersji dla Redmine 4, ale wyszukiwanie nazwy wtyczki w GitHubie skierowało mnie na projekt, który ją ma: RubyClickAP / clipboard_image_paste.


Dodawanie wtyczki lub motywu af pobranego źródła

Motyw A1 jost dobrym przykładem, aby pokazać przypadki, gdy masz źródło, ale ikke masz adresu URL do pobrania podczas procesu budowania. Jednym z rozwiązań w takich przypadkach jest dostarczenie źródła do processu budowania. W ten sposób zawartość zostanie dodana do obrazu bez pobierania jej.

KOPI a1 offentlig / temaer / a1

Wymaga to, aby folder a1 był w tym samym miejscu, co plik Dockerfile.

Teraz jesteś gotowy do zbudowania swojego obrazu, więc otwórz terminal tam, gdzie znajduje się plik Dockerfile, i wykonaj

docker build -t min-redmine.

Po zbudowaniu będziesz mógł uruchomić swój obraz za pomocą

docker run -it -p 3000: 3000 - navn min-redmine min-redmine

Otwórz http://localhost:3000, aby zobaczyć swojego dostosowanego Redmine'a!

Redmine po dostosowaniu


Kilka wskazówek, jak dodać więcej wtyczek

Aby wypróbować nowe wtyczki, zawsze lepiej użyć świeżego kontenera Redmine. W ten sposób zdałem sobie sprawę, że rmagick wymaga zainstalowania niektórych pakietów. Najpierw uruchom tymczasowy kontener Redmine z

docker run --rm -d -p 3000: 3000 - navn test-redmine redmine

en następnie wejdź do kontenera za pomocą

docker udfører -det test-redmine bash

Tam możesz instalować pakiety systemowe, gemy lub uruchamiać migracje. Hvis du vil være sikker på, at du skal bruge Dockerfile!


Przesyłanie niestandardowego obrazu do Docker Hub

Obraz, który właśnie zbudowałeś, jost dostępny tylko w Twoim środowisku lokalnym. Co zrobić, jeśli chcesz udostępnić go innym, powiedzmy wszystkim? Oczywiście, możesz przesłać plik Dockerfile og powiązane pliki do repozytorium git, en zainteresowani będą mogli sami zbudować obraz. Ale Docker pozwala również przesłać zbudowany obraz do ich rejestru. W tym celu utwórz konto på hub.docker.com i utwórz również repozytorium dla swojego obrazu. Następnie zaloguj się w terminalu w ti sposób:

docker-login

Oznacz swój obraz, aby można go było przesłać do Twojego repozytorium

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

i przesłać go w ten sposób

docker push lcofre / redmine: seneste

Obraz Docker w afviser Docker

Teraz każdy może wypróbować Twój obraz, wykonując

docker run -it -p 3000: 3000 - navn my-redmine lcofre / redmine

Til wszystko! Tak przechodzisz od standardowej instalacji Redmine do spersonalizowanej wersji dostępnej w rejestrze Docker. Podziel się swoimi komentarzami lub pytaniami poniżej.


Zmniejszenie rozmiaru obrazu Docker

Zauważysz, że plik Dockerfile med repozytorium połączył wiele linii w jedną. Spøg til zalecenie Docker, aby uzyskać mniejsze obrazy. Możesz znaleźć tę radę i inne na stronie https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Innym zaleceniem zmniejszenia końcowego rozmiaru obrazu jest użycie wersji alpine Redmine

FRA Redmine: alpin

Alpine til inna dystrybucja Linuxa. Zamiast używać apt do instalowania pakietów, musisz użyć apk.

Ostatnia wskazówka: pakiety, które zainstalowaliśmy za pomocą apt w pliku Dockerfile, ikke są już potrzebne po zbudowaniu obrazu. Możesz postępować zgodnie z najlepszą praktyką stosowania wieloetapowych budowli: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Praktyka utrzymywania małego obrazu Docker pomaga szczególnie przy skalowaniu liczby instancji, ale także zmniejsza powierzchnię ataku na Twój obraz.

Vil du aktualisere Redmine? Łatwa.

Zdobądź wszystkie potężne narzędzia do doskonałego planowania, zarządzania og kontroli projektów w jednym oprogramowaniu.

Odkryj Easy Redmine

Udfør Easy Redmine til 30 dage på darmo

Pełne funkcje, zabezpieczenie SSL, codzienne kopie zapasowe, dostępne w Twojej lokalizacji