Evaluation von Dojo

01.02.2021

Mission – Was ist Dojo ?

Dojo hilft dir bei der Ausführung von Builds und Operationen in Docker Containern. Dadurch werden portable, einfach einzurichtende Entwicklungsumgebungen geschaffen. Jedoch läuft das Tool nur unter Linux oder MacOS. Windows wird derzeit nicht unterstützt, kann aber in Verbindung mit WSL genutzt werden.

Dojo Beispiel auf Linux

Voraussetzungen

Installation

Installiere Dojo wie folgt und verwende dabei immer die aktuelle Version (hier eine Versionsübersicht ).

Dojo Installation

Für MAC kannst du Dojo auch über brew installieren.

Dojo Installation über brew

Anwendung

Dojo stellt dir bereits einige Open Source Docker Images bereit, mit denen du out-of-the-box eine Vielzahl von Tools nutzen kannst. So kannst du beispielsweise an einem Projekt arbeiten, ohne dich um die Installation der erforderlichen Tools kümmern zu müssen.

In unserem Beispiel checken wir das bestehende Projekt, an dem wir arbeiten wollen, über git aus und navigieren dort in das root Verzeichnis:

git clone Befehl

Als nächstes erstellen wir darin ein Dojofile, das spezifiziert, welches Docker Image wir für das bestehende Projekt nutzen wollen.

Dojofile erstellen

Für unser Projekt brauchen wir Java und Maven, daher referenzieren wir in unserem Dojofile auf ein von kudulab bereitgestelltes Docker Image, welches uns out-of-the-box Maven, Java und Gradle bereitstellt. In unserem Beispiel reicht es aus, auf das zu verwendete Docker Image zu referenzieren. Ein Dojofile stellt uns jedoch noch eine Menge von weiteren Optionen zur Verfügung. Das verwendete Image beinhaltet folgendes:

  • openjdk version14
  • OpenJDK Runtime Environment
  • Gradle 6.5.1
  • Maven 3.3.9

dojo-docker Referenz

Dojo unterstützt einen interaktiven und einen nicht-interaktiven Modus. Führe Dojo ohne weitere Befehle aus, um in den interaktiven Modus zu gelangen, dadurch kannst du für längere Zeit innerhalb des Containers arbeiten.

dojo build

Überprüfe die Version jedes Tools und teste, ob du diese auch wirklich nutzen kannst.

java tools

Mit Maven kannst du jetzt beispielsweise Unit Tests durchlaufen.
mvn Test Befehl

Damit solltest du folgenden Output erhalten:

mvn test

Wie bereits schon erwähnt, gibt es neben dem interaktiven auch einen nicht-interaktiven Modus. Hänge dabei den auszuführenden Befehl einfach dahinter. So wird das Artefakt gebaut, ohne dass in die interaktive Shell gesprungen wird.

dojo mvn test

Docker Images selbst bauen

Neben bereits fertigen Docker Images, stellt Dojo auch eine Reihe von Regeln und Empfehlungen auf, wie du eigene Dojo Docker Images erstellen kannst:

Das Image MUSS :

  • einen dojo Nutzer und Gruppe haben.
  • eine bash und sudo installiert haben.
  • sichergehen, dass nach dem Start des Containers, das Verzeichnis ${dojo work} ist.

Der Docker-Image-entrypoint MUSS:

  • den aktuellen Nutzer in einen dojo Nutzer ändern.

Der Docker-Image-entrypoint SOLL:

  • die Ausführung einer interaktiven und nicht-interaktiven Shell unterstützen.
  • Dateien in /etc/dojo.d/variables/* ablegen
  • Dateien in /etc/dojo.d/scripts/* ausführen

Best Pratices:

  • semantische Versionierung für Docker Images nutzen
  • Behandle jedes Dojo-Image wie jedes Softwareprojekt mit seinem eigenen Lebenszyklus (automatisieren von builds und releases, Image vor release testen).
  • Nutze dabei auch die von Dojo bereitgestellten Skripte, um Docker Images zu erstellen. Damit erfüllst du bereits die meisten der oben genannten Anforderungen.

Dojo Docker Skript

Dojo vs. selbst gebaute Docker Images

Mit Dojo wird deine Umgebung als Code bereitgestellt und du kannst aus einer Vielzahl von bereits vorgefertigten Docker Images auswählen. Demzufolge hilft dir das Tool dabei, deine Umgebung standardisiert aufzusetzen. Ebenso hilft Dojo dabei deine Skripte zum Ausführen von Docker builds zu verkürzen. Daneben lassen sich auch Befehle in Docker einfacher ausführen als mit bloßem docker run.

Fazit

Beschreibung Vorteile Nachteile Use Cases
Dojo Dojo hilft dir bei der Ausführung von Builds und Operationen in Docker Containern wodurch portable, einfach einzurichtende Entwicklungsumgebungen geschaffen werden. Darüber hinaus stellt dir Dojo eine Reihe von Docker Images bereit, die es dir ermöglichen Projekte in verschiedenen Sprachen zu bauen.
  • reduziert Setup-Zeit für Entwicklungsumgebungen
  • erleichtert das Ausführen von Docker Builds
  • jeder Host erhält eine konsistente, reproduzierbare Umgebung, die durch ein Docker-Image bereitgestellt wird.
  • einfach aufzusetzen
  • Dojo behebt mehrere Probleme die durch Docker nicht out-of-the-box gelöst werden [siehe Dojo im Vergleich zu selbst gebauten Docker Images]
  • Tools auf Laptops von Entwicklern stimmen oftmals nicht mehr mit dem erforderlichen Setup des Projektes überein. Mit Dojo wird die Entwicklungsumgebung als Docker Image gepullt, daher wird sichergestellt, dass Hosts nicht wiederholt provisioniert werden müssen, um mit wechselnden Projekten Schritt zu halten
  • Windows wird nicht unterstützt.
  • kudulab/dojo stellt derzeit einzige Dokumentation bereit.
  • sehr neu auf dem Markt wird unter Linux noch weiter entwickelt, daher ggf. noch mit kleinen Bugs verbunden
  • für den Fall, dass du zwischen Projekten und Sprachen häufig wechselst.
  • wenn CI-Agenten von einer Vielzahl von Projekten gemeinsam genutzt werden.
  • sofern Docker bereits im Einsatz ist → durch Dojo werden Skripte kürzer.

Empfehlung

Schlussendlich ist Dojo ein geeignetes Tool für Nutzer, die in unterschiedlichen Sprachen an einem Projekt arbeiten und out-of-the-box eine Entwicklungsumgebung mit wenigen Befehlen einrichten möchten. Berücksichtige daher, dass das Tool sehr neu auf dem Markt ist und daher auch eine noch sehr kleine Community besitzt. Darüber hinaus läuft das Tool nur auf Linux und MacOs, während du mit Windows zusätzlich noch WSL benötigst. Triffst du also in Bezug auf Dojo auf unerwartete Probleme, hilft dir nur die existierende Dokumentation von kudulab auf Github weiter. Wenn du also Linux oder MacOS ohnehin schon nutzt und eins der vielen von Dojo vorgefertigten Docker Images auf dein Projekt passt, dann ist Dojo die richtige Wahl für dich.

 

Mehr zu Java Programmierungen erfahren

Mehr über Softwareentwicklung erfahren

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*