Jak vytvořit vlastní Docker obraz Redmine.
Redmine před úpravou
Poznámka: Redmine nativní docker můžete najít na https://hub.docker.com/_/redmine. Zde také najdete dobré instrukce, jak naplnit externí databázi a připojit externí složky (pro instalaci pluginů).
Pokud jste jako já a raději vidíte kód pro vytvoření vlastního Redmine Docker obrázku, můžete jít na github.com/lcofre/redmine a zkontrolovat Dockerfile.
Obrázek Redmine Docker je dobrým výchozím bodem, i když pravděpodobně byste chtěli přizpůsobit pluginy a témata podle svého vkusu. V tomto návodu vytvoříme Docker obrázek založený na oficiálním obrázku, přidáme některá témata a pluginy a nahrajeme ho do docker registru.
Zjednodušeně řečeno, 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 dedikovaný úložný kontejner.
Pluginy a témata
Vybrali jsme několik pluginů a témat, abychom ilustrovali různé způsoby, jak je přidat do Redmine:
- Skrýt postranní panel, plugin umožňující více prostoru na obrazovce, zejména při psaní problémů
- Vložit ze schránky, připojit snímky obrazovky vkládáním 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 předem databázi. Pokud potřebujete nainstalovat plugin, který potřebuje migrace, prosím, komentujte níže, protože máme pro vás dobré nápady.
Psaní Dockerfile
Dockerfile je recept na to, jak vytvořit Docker obrázek. První věc, kterou se zde naučíme, je, že musíme založit náš obrázek na nějakém jiném obrázku, takže použijeme oficiální obrázek pro Redmine.
Z Redmine
Tento první řádek Dockerfile bude založen nebo obrázek na nejnovějším a nejlepším obrázku, 4.1.0 v době psaní. Protože to zachytí každou verzi, která je nejnovější, můžete upřednostnit použití konkrétní verze, aby bylo možné použít neočekávané nové verze, které mohou zobrazit tento obrázek.
Z Redmine: 4.1.0
Použití Gitu pro získání komponenty
Většina témat a pluginů má gitové repozitáře, odkud můžeme stáhnout nejnovější kód. To platí pro následující tři komponenty.
Základní Redmine obraz Totální Git, ale můžeme ho přidat do obrazu následujícím způsobem
SPUSTÍTE apt install -y git
Toto bude provedeno při sestavování obrazu a umožní vám používat Git v následujících instrukcích.
Téma Gitmike: doporučují klonovat jejich repozitář přímo
RUN git klon https://github.com/makotokw/redmine-theme-gitmike.git public / themes / gitmike
Tento řádek provede klonovaný projekt do příslušných složek veřejnosti/témat
Skrytí postranního panelu: Stejný postup lze použít i pro pluginy. Tento vyžaduje pouze umístění klonovaných složek do složek pluginů
RUN git klon https://gitlab.com/bdemirkir/sidebar_hide.git pluginy / sidebar_hide
Vložení obrázku ze schránky: Toto také vypadá jako typický postup, naklonujte repozitář a můžete začít
RUN git klon https://github.com/RubyClickAP/clipboard_image_paste.git pluginy / clipboard_image_paste
Ale pokud si přečtete více, uvidíte, že "se doporučuje nainstalovat gem RMagick, jinak se připojené obrázky neobjeví v exportovaných souborech PDF". Jak to tedy uděláme? Mělo by to být tak snadné jako
RUN gem nainstalovat rmagick
ale pravděpodobně víte, že gem musí být nastaven před instalací, takže musíte nainstalovat některé balíčky před instalací gemu. Řádek, který skutečně 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, rozděleno na dvě řádky pro čitelnost.
Původní autor tohoto pluginu neposkytuje verzi pro Redmine 4, ale hledá název pluginu na GitHubu mě přivedlo na projekt, který ano: RubyClickAP / clipboard_image_paste.
Přidání pluginu nebo tématu ze staženého zdroje
Téma A1 je dobrým příkladem pro ilustraci případů, kdy máte zdroj, ale nemáte URL k jeho stažení během procesu sestavování. Jedna možnost v takových případech je zdrojem procesu sestavování. Tím se obsah přidá do obrazu bez jeho stahování
KOPIE a1 veřejné / témata / a1
To vyžaduje, aby složka a1 byla na stejném místě jako Dockerfile.
Nyní jste připraveni sestavit svůj obraz, takže otevřete terminál tam, kde je váš Dockerfile, a spusťte
stavitel doku -t můj-redmine.
Jednou sestavený budete moci spustit svůj obraz s
docker run -it -p 3000: 3000 - jméno my-redmine my-redmine
Jděte a otevřete http://localhost:3000, abyste viděli svůj vlastní Redmine!
Redmine po úpravách
Několik tipů, jak přidat více pluginů
Aby bylo možné vyzkoušet nové pluginy, je vždy lepší použít nový kontejner Redmine. Tak jsem zjistil, že rmagick vyžaduje některé balíčky k instalaci. Nejprve spusťte odstranitelnou instanci Redmine s
docker run - rm -d -p 3000: 3000 - jméno test-redmine redmine
a poté vstupte do instance s
docker exec -it test -redmine bash
Tam můžete nainstalovat OS balíčky, gemy nebo spouštět migrace. Jen si pamatujte kroky, abyste mohli přidat do svého Dockerfile!
Nahrání vašeho vlastního obrázku do Docker Hubu
Obrázek, který jste právě vytvořili, je dostupný pouze v místním prostředí. Co když ho chcete udělat dostupným pro ostatní, řekněme pro všechny? Samozřejmě můžete nahrát Dockerfile a související soubory do git repozitáře a zájemci si mohou sami sestavit obrázek. Ale Docker vám také umožňuje nahrát sestavený obrázek do jejich registru. Pro to účet účet na hub.docker.com a také zkuste repozitář pro svůj obrázek. Poté se přihlaste v terminálu takto
přihlášení do doku
Označte svůj obrázek, aby mohl být nahrán do vašeho repozitáře
docker tag my-redmine: latest lcofre / redmine: latest
a nahrajte ho takto
dokovací push lcofre / redmine: nejnovější
Obrázek Docker v registru Docker
Nyní si můžete kdokoli vyzkoušet váš obrázek tak, že provedete
docker run -it -p 3000: 3000 - jméno my-redmine lcofre / redmine
To je vše! Takto se dostanete z běžné instalace Redmine na personalizovanou verzi přístupnou v registru Docker. Prosím, sdílejte své komentáře nebo otázky níže.
Zmenšení velikosti Docker obrázku
Zjistíte, že Dockerfile v repozitáři spojil mnoho řádků do jednoho. Toto je doporučení od Dockeru, jak vytvářet menší obrázky. Toto a další rady najdete na https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
dalším doporučením, jak snížit konečnou velikost obrázku, je použití alpine verze Redmine
Z Redmine: alpine
Alpine je jiná linuxová distribuce. Místo použití apt k instalaci balíčků musíte použít apk.
Jedna poslední rada: balíčky, které jsme nainstalovali pomocí apt v Dockerfile, již po zobrazení obrázku nejsou potřeba. Můžete dodržovat nejlepší postup s použitím vícestupňových sestavení: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds
Praxe udržování malého Docker obrázku pomáhá zejména při škálování počtu inkas, ale také snižuje útokovou plochu vašeho obrázku.
Nejlepší upgrade Redmine? Snadný.
Získejte všechny mocné nástroje pro dokonalé plánování, řízení a kontrolu projektů v jednom softwaru.