DDEV - Lokale Entwicklungstools basierend auf Docker Containern

LuckyStep/Shutterstock.com
von Thomas Hauschild Magento 2 Entwickler Veröffentlicht am 14.06.2023 7 Minuten Lesezeit

Was ist DDEV?

Container-Superkräfte ohne erforderliche Docker-Kenntnisse: Umgebungen innerhalb von Minuten, mehrere gleichzeitige Projekte und weniger Zeit bis zur Bereitstellung.

TL;DR:

DDEV ist ein Open-Source-Tool zum Ausführen von lokalen Webentwicklungsumgebungen für PHP, Python und Node.js, die innerhalb von Minuten einsatzbereit sind. Seine leistungsstarken und flexiblen Umgebungskonfigurationen pro Projekt können erweitert, versionskontrolliert und geteilt werden. DDEV ermöglicht es Entwicklungsteams, einen konsistenten Docker-Workflow zu übernehmen, ohne sich mit maßgeschneiderter Konfiguration auseinandersetzen zu müssen.

Von wem ist das?

DDEV wurde 2018 von Drud Technology, LCC veröffentlicht und wird heute von einer wachsenden Gemeinschaft von Mitwirkenden auf GitHub gepflegt. Randy Fay als Haupt-Maintainer wird durch eine Advisory Group mit Community-Governance unterstützt und über die Localdev Foundation (eine gemeinnützige Organisation in Colorado, USA) finanziert.

Die Geschichte von DDEV - auf ddev.com

Warum will ich das?

Docker und dessen Vorteile haben sich schon seit einer ganzen Weile in der Webentwicklung herumgesprochen, doch trotzdem sind viele aus diversen Gründen noch immer nicht auf diesen Zug aufgesprungen. DDEV nimmt einem diese Entscheidung endlich ab, da man damit die Vorteile von Docker genießen kann, ohne sich mit der ganzen Konfiguration und Architektur darunter beschäftigen zu müssen. (Aber durchaus kann, sofern man denn möchte!) Durch die Verwendung von Docker Containern kann DDEV eine saubere und reproduzierbare Umgebung bereitstellen, die unabhängig von der Hardware und dem Betriebssystem des Entwicklers läuft.

Und klemmte etwa die Taste bei der Namenswahl?

Nein, "DDEV" ist eine Abkürzung für "Docker Development Environment". Docker selbst ist eine beliebte Container-Technologie, die in DDEV verwendet wird, um eine schnelle und konsistente Bereitstellung von Entwicklungsumgebungen zu ermöglichen.

Aber ich nutze [dein superkomplexes System hier einfügen] - geht das?

DDEV unterstützt eine Vielzahl von Web-Stacks, darunter PHP, Node.js, Python, Ruby, Go und mehr. Es ist auch einfach erweiterbar, so dass man es an eigene spezifische Anforderungen anpassen kann.

Aktuell ist DDEV verfügbar für:

(Stand 5 März 2023: https://ddev.readthedocs.io/en/stable/#system-requirements)

Für einige Systeme gibt es sogar speziellen Support: 

Alles klar, gibt’s noch was zu erzählen?

So viel, dass ein kleiner Blogbeitrag dazu leider nicht ausreicht. Dennoch möchte ich zwei Punkte nicht unerwähnt lassen:

Commands / Befehle

Mit Commands bietet DDEV eine hervorragende Möglichkeit die wiederkehrenden Aufgaben des Alltags zu erledigen. Sei es das Importieren eines SQL-Dumps, das Ausführen bestimmter Programme mittels superkomplizierter Parameter in bestimmten Ordnern oder auch nur das Verwalten des Tools selbst. Für all dies lassen sich wahlweise bereits vorhandene Commands nutzen oder auch einfach mittels Bash-Scripts eigene schreiben. Für mehr Infos ist die Dokumentation wie immer eine super Anlaufstelle: Commands - DDEV Docs

Erweiterungen / Extending and Customizing Environments

Es gibt viele Möglichkeiten wie DDEV sich für die eigenen Bedürfnisse anpassen oder erweitern lässt. Beispielsweise kann man die PHP oder Node Version ganz einfach per config.yaml abändern. Auch der Webserver, ob nginx oder Apache lässt sich einfach konfigurieren und bei Bedarf noch mit eigener Konfiguration füttern. Sollte das noch nicht reichen, so kann man über Add-ons noch weitere Services wie Redis, Elasticsearch oder auch Browsersync in das Projekt integrieren. Sollte es noch kein offizielles Add-on geben, so kann man sich dies auch einfach selbst einrichten und bestenfalls noch der Community zur Verfügung stellen. Auch hier lohnt sich wieder ein Blick in die Dokumentation: Additional Service Configurations & Add-ons - DDEV Docs

Und was habt ihr damit zu tun?

Wir bei e3n nutzen für alle unsere Projekte DDEV als Entwicklungsumgebung. Wir haben eigene Commands in den unterschiedlichen Projekten, um unseren Arbeitsalltag zu erleichtern. Auch eigene Add-ons finden mehr und mehr Einzug, von denen auch die DDEV-Community profitieren kann.

Nennenswert wäre hier dermatz/ddev-woodoo-buildtools-magento - ein DDEV Addon mit welchem sich Magento Frontend Themes bauen lassen, ohne sich mit dem Build-Prozess beschäftigen zu müssen.

Das klingt super, ich lösche direkt mein XAMPP und dann?

Am besten die offizielle Dokumentation zur Hand nehmen, sich die Installationsanleitung für das jeweilige Betriebssystem wählen und die Schritte dort befolgen. Anschließend steht einem für ein ddev config zur Einrichtung eines neuen Projekts nichts mehr im Weg.

Zur Dokumentation geht’s hier entlang -> Get Started with DDEV - DDEV Docs

Ich hoffe ihr werdet mit DDEV genau so viel Spaß haben, wie es bei uns der Fall ist und solltet ihr einmal nicht weiterwissen, dann gibt es die Möglichkeit für Support über z.B. dem offiziellen Discord Server.