en
Wybierz język
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
Tłumaczenie SI
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Jak stworzyć swój niestandardowy obraz Docker Redmine?

6/16/2020
8 minut
Ł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ś zainstalować w środowisku produkcyjnym, prawdopodobnie wiesz również, że istnieje oficjalny obraz dockera, który znacznie upraszcza instalację i skalowanie w środowiskach o wysokim zapotrzebowaniu.

Redmine przed dostosowaniem

Note: Natywną aplikację dokującą Redmine można znaleźć na https://hub.docker.com/_/redmine. Tutaj możesz również znaleźć dobre instrukcje dotyczące wypełniania zewnętrznej bazy danych i montowania folderów zewnętrznych (aby móc instalować wtyczki).

Jeśli jesteś podobny do mnie i wolisz bezpośrednio zobaczyć kod budowania niestandardowego obrazu Redmine Docker, możesz przejść do https://github.com/lcofre/redmine i sprawdź plik Docker.

Obraz Redmine Docker jest dobrym punktem wyjścia, chociaż prawdopodobnie chcesz go dostosować za pomocą wtyczek i motywów, które ci się podobają. W tym poradniku zbudujemy obraz Dockera w oparciu o oficjalny, dodamy motywy i wtyczki i prześlemy go do rejestru dokera.

Dla uproszczenia nie będziemy używać zewnętrznej bazy danych, ale wewnętrznej bazy danych w samym kontenerze Redmine. Jednak w środowisku produkcyjnym wskazane jest skonfigurowanie dedykowanego kontenera pamięci.


Wtyczki i motywy

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

  • Ukryj pasek boczny, wtyczka zapewniająca więcej miejsca na ekranie, zwłaszcza podczas pisania problemów
  • Wklej schowek, aby dołączyć zrzuty ekranu wklejane ze schowka zamiast wybierać plik
  • A1 i Gitmike, dwa motywy do zmiany wyglądu interfejsu użytkownika

Wykluczamy wtyczki wymagające migracji bazy danych, ponieważ potrzebujesz wcześniej istniejącej bazy danych. Skomentuj poniżej, jeśli chcesz zainstalować wtyczkę wymagającą migracji, ponieważ mamy dla Ciebie dobre pomysły.


Pisanie pliku Docker

Plik Docker to przepis na to, jak zbudować obraz Docker. Pierwszym faktem, którego się tutaj dowiemy, jest to, że musimy oprzeć nasz obraz na innym obrazie, więc użyjemy oficjalnego dla Redmine

Z Redmine

Ta pierwsza linia pliku Docker będzie bazować na najnowszym i największym obrazie, 4.1.0 w momencie pisania. Ponieważ pobierze to najnowszą wersję, możesz użyć konkretnej wersji, aby uniknąć nieoczekiwanych nowych wersji, które mogą uszkodzić kompilację tego obrazu

Z Redmine: 4.1.0


Korzystanie z Git, aby uzyskać składniki

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

Podstawowy obraz Redmine jest dostępny bez git, ale w ten sposób możemy go dodać do obrazu

Uruchom RUN apt install -y git

Zostanie to wykonane po zbudowaniu obrazu i pozwoli ci użyć git w poniższych instrukcjach.

Motyw Gitmike: zalecają bezpośrednie klonowanie swojego repozytorium

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

Linia zapisze sklonowany projekt w odpowiednim folderze public / themes

Ukryj pasek boczny: Tę samą procedurę można zastosować do wtyczek. Ten wymaga jedynie umieszczenia sklonowanego folderu w folderze wtyczek

URUCHOM klon git https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide

Wklej obraz ze schowka: Wydaje się to również typową procedurą, sklonuj repozytorium i możesz zacząć

URUCHOM klon git https://github.com/RubyClickAP/clipboard_image_paste.git plugins / clipboard_image_paste

Ale jeśli ty czytaj więcej zobaczysz, że „zalecane jest zainstalowanie klejnotu RMagick, w przeciwnym razie załączone obrazy nie będą wyświetlane w eksportowanych plikach PDF”. Więc jak to robimy? To powinno być tak proste jak

URUCHOM gem zainstaluj rmagick

ale prawdopodobnie wiesz, że klejnot musi zostać zbudowany, zanim będzie można go zainstalować, więc musisz zainstalować kilka pakietów przed zainstalowaniem klejnotu. Linia, której naprawdę potrzebujesz, to

URUCHOM apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem zainstaluj rmagick

Wszystko w jednym poleceniu, oddzielone w dwóch wierszach dla czytelności.

Oryginalny autor tej wtyczki nie udostępnia wersji dla Redmine 4, ale wyszukiwanie nazwy wtyczki w GitHub znalazło mnie w projekcie, który: RubyClickAP / clipboard_image_paste.


Dodanie wtyczki lub motywu z pobranego źródła

Połączenia Motyw A1 jest dobrym przykładem ilustrującym przypadki, w których masz źródło, ale nie adres URL do pobrania podczas procesu kompilacji. Jedną z opcji w takich przypadkach jest dostarczenie źródła do procesu budowy. W ten sposób zawartość jest dodawana do obrazu bez pobierania

KOPIUJ a1 public / themes / a1

Wymaga to, aby folder a1 znajdował się w tym samym miejscu, co plik Docker.

Teraz możesz zbudować swój obraz, więc otwórz terminal, w którym znajduje się plik Dockerfile i uruchom go

docker buduje -t my-redmine.

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

docker run -it -p 3000: 3000 --name my-redmine my-redmine

Śmiało i otwórz http: // localhost: 3000, aby zobaczyć swój niestandardowy Redmine!

Redmine po dostosowaniu


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

Aby wypróbować nowe wtyczki, zawsze lepiej jest użyć świeżego pojemnika Redmine. W ten sposób zdałem sobie sprawę, że rmagick wymaga zainstalowania niektórych pakietów. Najpierw uruchom odrzucalną instancję Redmine za pomocą

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

a następnie wprowadź instancję za pomocą

docker exec - it test-redmine bash

Tam możesz zainstalować pakiety systemu operacyjnego, klejnoty lub uruchomić migracje. Pamiętaj tylko o krokach, aby dodać je do pliku Docker!


Przesyłanie niestandardowego obrazu do Docker Hub

Właśnie zbudowany obraz jest dostępny tylko dla lokalnego środowiska. Co jeśli chcesz udostępnić go innym, powiedzmy wszystkim? Oczywiście możesz przesłać plik Dockerfile i powiązane pliki do repozytorium git, a osoby zainteresowane mogą samodzielnie zbudować obraz. Ale Docker pozwala również na przesłanie wbudowanego obrazu do ich rejestru. W tym celu utwórz konto w hub.docker.com, a także utwórz repozytorium dla swojego obrazu. Następnie zaloguj się w terminalu w ten sposób

login dokera

Oznacz swoje zdjęcie, aby można je było przesłać do repozytorium

tag dokera my-redmine: najnowsze lcofre / redmine: najnowsze

i popchnij to w ten sposób

docker push lcofre / redmine: najnowszy

Obraz Docker w rejestrze Docker

Teraz każdy może wypróbować Twój obraz

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

Otóż ​​to! W ten sposób przechodzisz od standardowej instalacji Redmine do spersonalizowanej wersji dostępnej w rejestrze Docker. Udostępnij swoje uwagi lub pytania poniżej.


Przycinanie rozmiaru obrazu Docker

Przekonasz się, że Plik Docker w repozytorium połączył wiele linii w jedną. Jest to zalecenie Dockera do robienia mniejszych zdjęć. Możesz znaleźć te porady i inne w https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Kolejnym zaleceniem w celu zmniejszenia ostatecznego rozmiaru obrazu jest użycie alpejskiej wersji Redmine

FROM Redmine: alpejski

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

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

Praktyka przechowywania obrazu Docker o małym rozmiarze pomaga zwłaszcza przy zwiększaniu liczby instancji, ale także zmniejsza powierzchnię ataku na obrazie.

Najlepsza aktualizacja Redmine? Łatwo.

Uzyskaj wszystkie potężne narzędzia do doskonałego planowania, zarządzania i kontroli projektów w jednym oprogramowaniu.

Odkryj Easy Redmine

Wypróbuj Easy Redmine w 30-dniowym bezpłatnym okresie próbnym

Pełne funkcje, ochrona SSL, codzienne kopie zapasowe w Twojej geolokalizacji