Cách tạo hình ảnh Docker Redmine tùy chỉnh của bạn

10/14/2023
8 minutter
Lukáš Beňa.
Redmine là một trong những công cụ phổ biến nhất cho quản lý dự án và theo dõi vấn đề. Nếu bạn đã thử nó hoặc phải cài đặt nó trong một môi trường sản xuất, bạn có thể cũng cũng biết hìn chính thức giúp đơn giản hóa việc cài đặt và mở rộng cho môi trường yêu cầu cao.

Redmine før tilpasning

Bemærk: Redmine native docker kan findes på https://hub.docker.com/_/redmine. Her kan du muligvis også finde gode instruktioner til, hvordan du udfylder en ekstern database og monterer eksterne mapper (for at kunne installere plugins).

Hvis du er som mig og foretrækker at direkte se koden til opbygning af et tilpasset Redmine Docker-billede, kan du gå til github.com/lcofre/redmine og kontroller Dockerfile.

Redmine Docker-billedet er et godt udgangspunkt, selvom du sandsynligvis ønsker at tilpasse det med plugins og temaer, du ønsker. I denne vejledning skal vi bygge et Docker-billede baseret på det officielle, tilføje nogle temaer og plugins og uploade det til dockerregistret.

For enkelhedens skyld bruger vi ikke en ekstern database, men en intern database i selve Redmine-containeren. For et produktionsmiljø anbefales det dog at opsætte en dedikeret opbevaringscontainer.


Plugins og temaer

Vi valgte et par plugins og temaer for at illustrere forskellige måder at tilføje dem til Redmine:

  • Skjul sidebjælke, et plugin, der giver mulighed for mere skærmplads, især når du skriver problemer
  • Indsæt udklipsholder, for at vedhæfte skærmbilleder, der indsættes fra udklipsholderen i stedet for at vælge en fil
  • A1 , Gitmike, to temaer for at ændre UI's udseende

Vi udelukker plugins, der kræver en databasemigrering, da du har brug for en forudbestående database. Kommenter venligst nedenfor, hvis du har brug for at installere et plugin, der har brug for migrering, da vi har gode ideer til dig.


Skrivning af Dockerfile

En Dockerfile er en opskrift på, hvordan man bygger et Docker-billede. Den første kendsgerning, vi lærer her, er, at vi er nødt til at basere vores image på et andet billede, så vi bruger det officielle til Redmine

FRA Redmine

Denne første linje i Dockerfile baserer eller billedet på det seneste og bedste billede, 4.1.0 på skrivende tidspunkt. Da dette griber uanset hvilken version der er senest, kan du foretrække at bruge en bestemt version for at undgå uventede nye versioner, der kan ødelægge opbygningen af ​​dette billede

FRA Redmine: 4.1.0


Brug af Git til at hente komponenterne

I de fleste tilfælde har temaer og plugins git-lagre, hvor vi kan hente den nyeste kode. Dette er tilfældet for de følgende tre komponenter.

Basis Redmine-billedet kommer uden git, men vi kan føje det til billedet på denne måde

KØR apt installation -y git

Dette udføres, når billedet er bygget, og giver dig mulighed for at bruge git i følgende instruktioner.

Gitmike-tema: de anbefaler at klone deres repo direkte

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

Linjen gemmer det klonede projekt i den relevante mappe offentlighed / temaer

Skjul sidebjælke: Den samme procedure kan anvendes på plugins. Denne kræver intet mere end at placere den klonede mappe i plugins-mappen

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

Klippebord Billedpasta: Dette synes også den typiske procedure, klone repoen, og du er god til at gå

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

Men hvis du læs lidt mere ser du, at "det anbefales at installere RMagick perle, ellers vises vedhæftede billeder ikke i eksporterede PDF-filer". Så hvordan gør vi det? Det skal være så let som

RUN perle installer rmagick

men du ved sandsynligvis, at perlen skal bygges, før den kan installeres, så du skal installere nogle pakker, før du installerer perlen. Den linje, du virkelig har brug for, er

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

       && perleinstallere rmagick

Alt i en kommando, adskilt i to linjer for læsbarhed.

Den originale forfatter af dette plugin giver ikke en version til Redmine 4, men en søgning efter plugin-navnet i GitHub landede mig på et projekt, der gør: RubyClickAP / clipboard_image_paste.


Tilføjelse af et plugin eller et tema fra en downloadet kilde

A1-tema er et godt eksempel til at illustrere de tilfælde, hvor du har kilden, men ikke en URL, der skal downloades under byggeprocessen. En mulighed i tilfælde som denne er at give kilden til byggeprocessen. På den måde føjes indholdet til billedet uden at downloade det

KOPI a1 offentlig / temaer / a1

Dette kræver, at mappen a1 er på det samme sted, som Dockerfile er.

Nu er du klar til at opbygge dit billede, så åbn en terminal, hvor din Dockerfile er og udfør

docker build -t min-redmine.

Når den er bygget, kan du køre dit billede med

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

Gå videre og åbn http: // localhost: 3000 for at se din brugerdefinerede Redmine!

Redmine efter tilpasning


Nogle tip til at tilføje flere plugins

For at prøve nye plugins er det altid bedre at bruge en frisk Redmine-beholder. Det var sådan jeg indså, at rmagick kræver, at nogle pakker skal installeres. Kør først en forkastelig forekomst af Redmine med

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

og indtast derefter forekomsten med

docker udfører -det test-redmine bash

Der kan du installere OS-pakker, perler eller køre migrationer. Bare husk trinnene, så du kan tilføje dem til din Dockerfile!


Upload af dit brugerdefinerede billede til Docker Hub

Det billede, du lige har bygget, er kun tilgængeligt for dit lokale miljø. Hvad hvis du vil gøre det tilgængeligt for andre, lad os sige til alle? Naturligvis kan du uploade Dockerfile og relaterede filer til en git repo, og de interesserede kan selv opbygge billedet. Men Docker giver dig også mulighed for at uploade det indbyggede billede til deres registreringsdatabase. For at oprette en konto i hub.docker.com og også oprette et lager til dit billede. Log derefter på terminalen som denne

docker-login

Tag dit billede, så det kan uploades til din repo

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

og skub det sådan ud

docker push lcofre / redmine: seneste

Docker-billedet i Docker-registreringsdatabasen

Nu kan enhver prøve dit billede ved at gøre

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

Det er det! Sådan går du fra en standard Redmine-installation til en personlig version tilgængelig i Docker-registreringsdatabasen. Del dine kommentarer eller spørgsmål nedenfor.


Trimning af Docker-billedstørrelse

Du finder ud af, at Dockerfile i repoen sluttede mange linjer i en. Dette er en Docker-anbefaling om at lave mindre billeder. Du kan finde det råd og andre i https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

En anden anbefaling for at reducere billedets endelige størrelse er at bruge den alpine version af Redmine

FRA Redmine: alpin

Alpine er en anden linux distribution. I stedet for at bruge apt til at installere pakker skal du bruge apk.

Et sidste tip: De pakker, vi har installeret med apt i Dockerfile, er ikke længere nødvendige efter billedet er bygget. Du kan følge den bedste praksis med at bruge flertrins-builds: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds

Praksisen med at bevare et Docker-billede i lille størrelse hjælper især når du skalerer antallet af tilfælde, men reducerer også angreboverfladen på dit billede.

Vil du have Redmine? Dễ dàng.

Được trang bị tất cả các công cụ mạnh mẽ để lập kế hoạch, quản lý và kiểm soát dự án duo hoàn hẁn hẁn ất.

Khám Phá Easy Redmine

Thử Easy Redmine trong thời gian dùng thử 30 ngày miễn phí

Đầy đủ tính năng, bảo vệ bằng SSL, sao lưu hàng ngày, tại vị trí địa lý của bạn