Kompetenzen Portfolio Referenzen Lebenslauf Blog Termin buchen

Warum TYPO3 und Docker keine guten Freunde sind

Gepostet von: Felix Dziekan in: Blog am 

Dafür kriege ich vielleicht Gegenwind, aber ich sage es trotzdem: TYPO3 und Docker passen nicht immer gut zusammen.

Erst mal zur Klarstellung. Ich mag Docker. Es ist simpel, nützlich und läuft auf fast jedem System. Ich mag auch TYPO3. Es ist mächtig, flexibel und über die Jahre deutlich besser geworden.

Aber wenn du beides kombinierst, wird es kompliziert. Nicht weil sie nicht zusammenarbeiten könnten – das tun sie –, sondern weil sie sehr unterschiedlichen Ideen folgen.

Wie Docker funktioniert

Docker führt Anwendungen in Containern aus. Jeder Container sollte eine Aufgabe erledigen. Zum Beispiel:

  • einen Webserver
  • PHP
  • eine Datenbank

In einem typischen Setup läuft ein Container pro Service. Das hält die Sache einfach und gut verwaltbar.

Du kannst mehrere Services in einem Container laufen lassen, aber in den meisten Fällen solltest du das nicht tun.

Das eigentliche Problem

In der Entwicklung funktionieren Docker und TYPO3 gut zusammen. Die Probleme fangen meistens an, wenn du in Produktion gehst.

TYPO3 braucht Dateien, die zur Laufzeit entstehen. Dazu gehören:

  • hochgeladene Dateien (fileadmin/)
  • verarbeitete Bilder
  • generiertes CSS und JavaScript

Diese Dateien werden von PHP geschrieben, müssen aber vom Webserver ausgeliefert werden.

Das Problem mit dem gemeinsamen Dateisystem

Docker-Container sind isoliert. Das heißt, sie teilen sich standardmäßig keine Dateien.

Damit TYPO3 funktioniert, brauchst du gemeinsamen Speicher zwischen den Containern. In der Entwicklung ist das mit Docker-Volumes einfach.

In Produktion wird es komplexer:

  • du brauchst persistenten Speicher
  • du brauchst korrekte Dateirechte
  • du musst Container-Neustarts abfangen

Das ist alles machbar – aber es ist zusätzliche Arbeit gegenüber einem einfachen Server-Setup.

Sitepackages und Asset-Pfade

TYPO3 legt CSS, JavaScript und Bilder in Extensions ab. Zum Beispiel:

typo3conf/ext/my_sitepackage/Resources/Public/

Dein Webserver muss diese Dateien direkt ausliefern können.

Das bedeutet:

  • deine Serverkonfiguration muss diese Pfade kennen
  • oder du brauchst einen Build-Schritt, der die Dateien in einen öffentlichen Ordner schiebt

Jede Änderung in deinen Extensions kann dein Setup beeinflussen. In Teams führt das oft zu Verwirrung und „bei mir läuft's"-Problemen – also genau zu dem, was Docker eigentlich lösen soll.

Stateful vs. stateless

Docker ist für zustandslose Systeme gebaut. Container sollen jederzeit einfach ersetzbar sein.

TYPO3 ist anders. Es speichert wichtige Daten im Dateisystem, etwa:

  • Uploads
  • Cache-Dateien
  • Logs

Damit ist TYPO3 ein zustandsbehaftetes System.

Docker will ersetzbare Container. TYPO3 hängt an Dateien, die bleiben müssen. Dieser Unterschied verursacht die meisten Probleme.

Solltest du Docker mit TYPO3 nutzen?

Für die lokale Entwicklung: ja.

Docker gibt dir eine einheitliche Umgebung und macht das Onboarding leichter.

Für Produktion: kommt darauf an.

Wenn du Skalierung, mehrere Services oder komplexe Infrastruktur brauchst, kann Docker sinnvoll sein. Wenn nicht, ist ein einfaches Server-Setup mit einem guten Deployment-Prozess oft leichter und stabiler.

Am Ende können TYPO3 und Docker zusammenarbeiten – du musst nur die Kompromisse verstehen.

Und damit das klar ist: Diese Website läuft mit TYPO3 in Docker. Es funktioniert. Es bringt nur etwas Zusatzkomplexität mit.

Sie brauchen einen Senior-Entwickler, der liefert?

Über 20 Jahre. Produktionssysteme. Echte Deadlines. Ob Architekt, Entwickler oder DevOps-Engineer — ich habe alle drei Rollen übernommen, oft im selben Projekt. Sparen wir uns den Agentur-Overhead und sprechen direkt.