Warum ich auf DDEV mit Docker als Entwicklungsumgebung umsteige

Eigentlich war ich mit meiner Entwicklungsumgebung mit MAMP Pro zufrieden, bis sich leider über die Zeit Performanz und der Softwarestand verschlechterten. Mein Macbook in dem ein M1 Chip werkelt ist aus Ende 2021 und hat ausreichend Leistung. Daran liegt es nicht!

Angefangen hat es mit den Ladezeiten des LAMP Systems, das einfache Webseiten im Frontend und im Contao Backend langsam wurden. Das nervt dann schon wenn in Summe die Arbeitszeit von einem Tool ausgebremst wird, das einem die Arbeit eigentlich erleichtern soll. Alle Einstellung an MAMP wurden überprüft und nur die notwendigsten VHost hochgefahren. OpCache ist aktiv und die Contao Installationen laufen alle unter PHP 8.  

Ausschlaggebend war dann die fehlende Unterstützung von MySQL 8.x + die für zukünftige Contao 5 Version notwendig ist. Leider gibt es unter MAMP nur die veraltete 5.7.x. Laut meiner Supportanfrage Anfang 01/2024 an den Support von  MAMP wurde mir mitgeteilt, das erst im Q1-2 2024 eine neue Version mit MySQL 8.x bereitgestellt wird. Somit war klar das ich mich nach einer Lösung umsehen musste.

Auf der Suche nach Alternativen für die lokale LAMP Entwicklungsumgebung gibt es sicher noch weitere Möglichkeiten, sich selber alle Services zusammen zu installieren.

Da ich kein Server-Admin bin und mich in den Bereich auch nicht tiefer einarbeiten will, bleibt es bei fertigen Lösungen wie MAMP, XAMPP oder eben jetzt DDEV der mir den Docker Container zusammen baut wie ich es benötige. Hier reicht schon das default Setup das bei der Einrichtung und Dokumentation auf https://ddev.readthedocs.io/en/latest/ zu finden ist.

So habe ich DDEV und Docker installiert und bin damit zufrieden

Los geht es auf der Webseite DDEV Docs auf der die Schritte beschrieben sind.

Hier eine kurze Zusammenfassung was ihr installieren und konfigurieren müsst, um eine individuelle Entwicklungsumgebung mit einem schnellen LAMP System einzurichten.

1. Homebrew per Konsole https://brew.sh/ installieren

Der Paketmanager kann auch für andere Anwendungen / Erweiterungen verwendet werden.

2. Docker installieren

Hier habe ich mich für Docker Desktop für den Mac entschieden, dann kann ich über die UI bisserl tiefer reinschauen, was die Container so treiben.

brew install --cask docker

Danach müsst ihr die docker.app unter Programme starten bzw. ein erstes mal einrichten.

3. DDEV und mkcert installieren für lokale SSL Verschlüsselung

brew install ddev/ddev/ddev

Für die SSL Verschlüsselung lokal wird noch

brew install nss

und

mkcert -install

benötigt.

 

4. Das erste Projekt mit DDEV anlegen

Wenn ihr ein neues Projekt startet, dann legt euch unter eurer Ordnerstruktur in der die neue Contao Webseite liegen soll, einen Unterordner an. Bei mir z.B. unter

/Users/codesache/Documents/htdocs/neues-contao53-projekt/

Wechselt unter der Console in das Verzeichnis und startet die Konfiguration mit ddev config damit das Setup für den Docker Container angelegt wird.

Die erste Abfrage im Setup ist der öffentliche Ordner von der Contao Installation der auf public lauten sollte. So gebt ihr das ein.

Ihr könnt auch in ein bestehendes Contao Projekt in den Projektordner (nicht web oder public) installieren.

Mit ddev config werdet ihr im Setup Prozess paar Punkte gefragt, die dann in die config.yml geschrieben werden. Nach Setup könnt ihr die Defaultwerte für die Umgebung wie folgt ändern.

Hier meine config.yml für eine Contao 5.3 Installation mit Apache und MySQL 8. Das Ganze soll dann auch unter https://contao53.local erreichbar sein, deshalb der zusätzliche Hostname. Der default Hostname war mir zu lang, ist aber darüber auch erreichbar.

name: contao53
type: php
docroot: public
php_version: "8.2"
webserver_type: apache-fpm
xdebug_enabled: false
additional_hostnames: []
additional_fqdns:
    - contao53.local
database:
    type: mysql
    version: "8.0"
use_dns_when_possible: true
timezone: Europe/Berlin
composer_version: "2"
web_environment: []
default_container_timeout: "240"

Contao per Composer installieren

Wechselt in das Verzeichnis

composer create-project contao/managed-edition contao-53-verzeichnis 5.3

Die ersten Tabellen legt ihr über den Docker Container so an, oder ihr importiert über phpmyadmin bzw. per Console die vorhandene DB.

ddev php vendor/bin/contao-console contao:migrate

Unter contao.org findet ihr auch noch eine Anleitung, wie ihr per Composer die entsprechende Contao Version installiert.

https://docs.contao.org/manual/de/anleitungen/lokale-installation/ddev/

 

5. Zusätzlich phpMyAdmin installieren

ddev get ddev/ddev-phpmyadmin

Aufruf über ddev phpmyadmin

 

6. Die wichtigsten DDEV Befehle

ddev start

ddev stop

ddev describe

ddev poweroff

Hier die Liste aller Befehle: https://ddev.readthedocs.io/en/latest/users/usage/cli/

Fazit und wo es klemmen kann

Die Anleitung von DDEV und die auf Contao sind eine gute Basis. Ich vermute, das nicht jedes Betriebssystem sich gleich verhält und es ja noch unterschiedliche Softwarestände gibt, muss individuell nach Anleitung das LAMP Setup aufgebaut werden. Ich habe folgende Stolpersteine unter Mac gehabt.

  • Eine alte Homebrew Version die ich erst los werden musste
  • mkcert -install hatte noch ein Paket für den Firefox benötigt, ist aber beschrieben was zu machen ist
  • Der Cache vom Terminal hat scheinbar einen nächsten Schritt der Installation verhindert und muss neu gestartet werden
  • Der Betrieb von MAMP und dem Docker Container geht bedingt durch die gleichen Ports nicht. Lösung: Immer nur einen Dienst starten.

Die nächsten Contao Projekte werden es zeigen, ob es noch Stellen gibt die am Setup angepasst werden müssen.

Bis jetzt bin ich mit der Geschwindigkeit der Contao Ladezeiten der Webseite super zufrieden. Lokal erreiche ich nun Zeiten unter 0,15 Sekunden laut Netzwerkanalyse.

Teilen auf: Facebook Twitter XING

Zurück