Jak vytvořit vlastní obrázek Redmine Docker
Před přizpůsobením Redmine
Poznámka: Redmine native docker can be found on https://hub.docker.com/_/redmine. Zde také můžete najít dobrý návod, jak naplnit externí databázi a připojit externí složky (aby bylo možné nainstalovat pluginy).
Pokud jste jako já a raději přímo uvidíte kód pro vytvoření vlastního obrázku Redmine Docker, můžete jít na github.com/lcofre/redmine a zkontrolujte Dockerfile.
Obrázek doku Redmine Docker je dobrým výchozím bodem, ale pravděpodobně byste jej chtěli přizpůsobit pomocí zásuvných modulů a témat podle svých představ. V tomto návodu vytvoříme obrázek Docker na základě oficiálního, přidáme některá témata a pluginy a nahrajeme ho do ukotvitelného registru.
Pro jednoduchost nebudeme používat externí databázi, ale interní databázi v samotném kontejneru Redmine. Pro produkční prostředí je však vhodné nastavit vyhrazený úložný kontejner.
Pluginy a témata
Pro ilustraci různých způsobů, jak je přidat do Redmine, jsme vybrali několik pluginů a témat:
- Skrýt postranní panel, plugin umožňující více místa na obrazovce, zejména při psaní problémů
- Vložit schránku, připojte snímky obrazovky vložené ze schránky místo výběru souboru
- A1 a Gitmike, dvě témata pro změnu vzhledu uživatelského rozhraní
Vylučujeme pluginy, které vyžadují migraci databáze, protože potřebujete již existující databázi. Pokud potřebujete nainstalovat zásuvný modul, který vyžaduje migraci, komentář níže, protože pro vás máme dobré nápady.
Psaní souboru Dockerfile
Dockerfile je recept, jak vytvořit obrázek Docker. První fakt, který se zde naučíme, je, že musíme založit svůj obrázek na jiném obrázku, takže použijeme oficiální obrázek pro Redmine
Z Redmine
Tento první řádek souboru Dockerfile bude v době psaní založen na posledním a největším obrázku, 4.1.0. Protože se tím uchopí jakákoli verze, která je nejnovější, můžete raději použít konkrétní verzi, abyste se vyhnuli neočekávaným novým verzím, které mohou narušit sestavení tohoto obrázku
Z Redmine: 4.1.0
Použití Git k získání komponent
Témata a pluginy mají ve většině případů úložiště git, kde si můžeme stáhnout nejnovější kód. To je případ následujících tří složek.
Základní obrázek Redmine přichází bez gitu, ale můžeme jej přidat do obrázku tímto způsobem
SPUSTÍTE apt install -y git
To bude provedeno po vytvoření obrazu a umožní vám použít git v následujících pokynech.
Gitmike téma: doporučují přímo klonovat jejich repo
RUN git klon https://github.com/makotokw/redmine-theme-gitmike.git public / themes / gitmike
Řádek uloží klonovaný projekt do příslušné složky public / themes
Skrýt postranní panel: Stejný postup lze použít i pro pluginy. Toto nevyžaduje nic víc než umístění klonované složky do složky pluginů
RUN git klon https://gitlab.com/bdemirkir/sidebar_hide.git pluginy / sidebar_hide
Vložit obrázek schránky: To se také jeví jako typický postup, klonujte repo a vy jste hodní jít
RUN git klon https://github.com/RubyClickAP/clipboard_image_paste.git pluginy / clipboard_image_paste
Ale jestli vy číst trochu víc uvidíte, že „doporučujeme nainstalovat drahokam RMagick, jinak se připojené obrázky nebudou zobrazovat v exportovaných souborech PDF“. Jak to tedy uděláme? Mělo by to být stejně snadné jako
RUN gem nainstalovat rmagick
ale pravděpodobně víte, že klenot musí být postaven před instalací, takže musíte nainstalovat nějaké balíčky před instalací klenotu. Linka, kterou opravdu potřebujete, je
SPUSTÍTE apt install -y build-essential imagemagick libmagickcore-dev libmagickwand-dev ruby-dev \
&& gem install rmagick
Vše v jednom příkazu, oddělené ve dvou řádcích, aby bylo možné číst.
Původní autor tohoto pluginu neposkytuje verzi pro Redmine 4, ale hledání názvu pluginu v GitHub mě přistoupilo k projektu, který: RubyClickAP / clipboard_image_paste.
Přidání pluginu nebo motivu ze staženého zdroje
Projekt Téma A1 je dobrým příkladem pro ilustraci případů, kdy máte zdroj, ale nikoli adresu URL ke stažení během procesu sestavení. Jednou z možností v takovýchto případech je poskytnout zdroj pro stavební proces. Tímto způsobem je obsah přidán do obrázku bez jeho stažení
KOPIE a1 veřejné / témata / a1
To vyžaduje, aby složka a1 byla na stejném místě jako soubor Dockerfile.
Nyní jste připraveni vytvořit svůj obrázek, takže otevřete terminál, kde je váš Dockerfile a spusťte jej
stavitel doku -t můj-redmine.
Po vytvoření budete moci spustit svůj obrázek
docker run -it -p 3000: 3000 - jméno my-redmine my-redmine
Pokračujte a otevřete http: // localhost: 3000 a uvidíte svůj vlastní Redmine!
Redmine po úpravě
Několik tipů, jak přidat další pluginy
Chcete-li vyzkoušet nové pluginy, je vždy lepší použít čerstvý kontejner Redmine. Takto jsem si uvědomil, že rmagick vyžaduje instalaci některých balíčků. Nejprve spusťte vyřazovací instanci Redmine
docker run - rm -d -p 3000: 3000 - jméno test-redmine redmine
a potom zadejte instanci pomocí
docker exec -it test -redmine bash
Tam můžete instalovat OS balíčky, drahokamy nebo spouštět migrace. Jen si pamatujte tyto kroky, abyste je mohli přidat do svého Dockerfile!
Nahrajte svůj vlastní obrázek do Docker Hubu
Obrázek, který jste právě vytvořili, je k dispozici pouze pro místní prostředí. Co když chcete zpřístupnit ostatním, řekněme všem? Samozřejmě můžete nahrát soubor Dockerfile a související soubory do repozitáře git a zájemci si mohou vytvořit obrázek sami. Docker však také umožňuje nahrát vytvořený obrázek do jejich registru. Za tímto účelem vytvořte účet na adrese hub.docker.com a také vytvořte úložiště pro svůj obrázek. Poté se přihlaste do terminálu jako je tento
přihlášení do doku
Označte svůj obrázek, aby mohl být nahrán na vaše repo
docker tag my-redmine: latest lcofre / redmine: latest
a tlačit to takto
dokovací push lcofre / redmine: nejnovější
Obrázek Docker v registru Docker
Nyní si může kdokoli vyzkoušet svůj obrázek
docker run -it -p 3000: 3000 - jméno my-redmine lcofre / redmine
A je to! Takto přecházíte od standardní instalace Redmine k personalizované verzi dostupné v registru Docker. Prosím, podělte se o své komentáře nebo dotazy níže.
Oříznutí velikosti obrazu Docker
Zjistíte, že Dockerfile v repo spojil mnoho linek do jedné. Toto je doporučení Docker pro vytváření menších obrázků. Tuto radu a další najdete v https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
Dalším doporučením ke zmenšení konečné velikosti obrázku je použití alpské verze Redmine
Z Redmine: alpine
Alpine je jiná linuxová distribuce. Namísto použití apt k instalaci balíků je třeba použít apk.
Jeden poslední tip: balíčky, které jsme nainstalovali s apt v Dockerfile, již nejsou potřeba po vytvoření obrazu. Můžete postupovat podle osvědčeného postupu při použití vícestupňových sestavení: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds
Praxe udržování obrazu Docker malé velikosti pomáhá zejména při zvyšování počtu případů, ale také snižuje útočnou plochu na vašem obrázku.
Dokonalý upgrade Redmine? Snadný.
Získejte všechny výkonné nástroje pro dokonalé plánování, správu a řízení projektů v jednom softwaru.