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.