Jak stworzyć własny obraz Redmine w Dockerze.

6/16/2020
9 minuti
Lukáš Beňa -> Łukasz Beňa
Redmine è uno dei più popolari progetti di progettazione e problemi di sviluppo. 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ę i skalowanie dla środowisk o wysokim zapotrzebowaniu.

Redmine è stato scaricato

Uwaga: Redmine natywny docker può essere visualizzato 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 cartelleów (aby móc zainstalować wtyczki).

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

L'immagine Docker Redmine è un ottimo punto di partenza, la scelta del prawdopodobnie chciałbyś va dostosować do swoich upodobań za pomocą wtyczek e motywów. Quando hai un'immagine Docker sul supporto ufficiale, dodamy kilka motywów i wtyczek oraz wgrajmy go do rejestru docker.

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


Wtyczki i motywy

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 Mike, dwa motywy zmieniające wygląd interfejsu użytkownika

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


Pisanie fare clic su Dockerfile

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

DA Redmine

La linea di supporto del file Dockerfile funziona sulla nostra immagine più recente e più recente, 4.1.0 in questo momento pisano. Ponieważ to pobierze najnowszą wersję, możesz wolisz użyć konkretnej wersji, aby uniknąć nieoczekiwanych nowych wersji, które mogą zepsuć budowę tego obrazu

DA 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 componentenów.

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

ESEGUI per installare -y git

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

Motyw Gitmike: zalecają bezpośrednie klonowanie ich repozytorium

ESEGUI clone git https://github.com/makotokw/redmine-theme-gitmike.git pubblico / themes / gitmike

Dieci progetti più interessanti in una cartella pubblica/temi diversi

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

ESEGUI clone git https://gitlab.com/bdemirkir/sidebar_hide.git plugins / sidebar_hide

Copia immagine negli Appunti: To również wydaje się typową procedure, sklonuj repozytorium and jesteś gotowy do działania

ESEGUI clone git 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 a Zrobić? Powinno to być takie proste jak

RUN gem installa 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

ESEGUI installa -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \

       && gem installa rmagick

Wszystko w jednej komendzie, podzielone na due linee dla czytelności.

L'autore originale di questo articolo non è stato aggiunto a Redmine 4, ma ha iniziato a farlo su GitHubie skierowało mnie na projekt, który ją ma: RubyClickAP / clipboard_image_paste.


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

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

COPIA a1 pubblico / temi / a1

Wymaga in, aby cartella a1 był w tym samym miejscu, co plik Dockerfile.

Adesso sei nel posto giusto, come aprire il terminale, fare clic su Dockerfile e selezionarlo

finestra mobile build -t my-redmine.

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

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

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

Redmine po dostosowaniu


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

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

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

e następnie wejdź do contenera za pomocą

docker exec -it test-redmine bash

È possibile installare il sistema di pacchetti, quindi eseguire la migrazione. Dopo aver completato l'operazione, tutto ciò che devi fare è fare un bel po' di Dockerfile!


Przesyłanie niestandardowego obrazu do Docker Hub

Obraz, który właśnie zbudowałeś, jest dostępny tylko w Twoim środowisku lokalnym. Co zrobić, jeśli chcesz udostępnić go innym, powiedzmy wszystkim? Dopodiché, puoi fare clic su Dockerfile e utilizzare il pulsante del repository git per consentirti di eseguire l'operazione. Ale Docker pozwala również przesłać zbudowany obraz do ich rejestru. In che modo questo account viene utilizzato su hub.docker.com e viene utilizzato il repository di posta elettronica dell'utente. Il seguente collegamento si trova nel terminale in dieci sposób:

login docker

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

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

i przesłać go w ten sposób

docker push lcofre / redmine: ultimo

Immagine Docker quando Docker è stato rifiutato

Teraz każdy może wyprobować Due cose, wykonując

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

A wszystko! Procedi con l'installazione standard di Redmine per creare versioni personalizzate sul desktop Docker. Podziel się swoimi komentarzami lub pytaniami poniżej.


Zmniejszenie rozmiaru obrazu Docker

Zauważysz, że fare clic su Dockerfile nel repository połączył wiele linii w jedną. Jest to 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

DA Redmine: alpino

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

Ostatnia wskazówka: pakiety, które zainstalowaliśmy for pomocą apt w pliku Dockerfile, nie są już potrzebne po zbudowaniu obrazu. Puoi scegliere tra le seguenti pratiche pratiche: 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.

Najlepsza aktualizacja Redmine? Latwa.

La maggior parte delle risorse potrebbe essere utile per doskonałego planowania, zarządzania e controllo del progetto con un programma di programmazione di qualità.

Odkryj Easy Redmine

Prova Easy Redmine per 30 giorni

Funzionalità aggiuntive, crittografia SSL, copia codificata disponibile in due località