FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.
Das Einrichten von TYPO3 kann manchmal überwältigend sein, insbesondere beim Umgang mit verschiedenen Abhängigkeiten und Konfigurationen. Docker bietet eine vereinfachte Lösung durch die Containerisierung Ihrer TYPO3-Umgebung, um Konsistenz in der Entwicklung, im Staging und in der Produktionsumgebung sicherzustellen.
Und das Beste daran? Sie haben Optionen. Wenn Sie den einfachsten Weg suchen, bietet DDEV eine schnelle und benutzerfreundliche Lösung. Möchten Sie mehr Kontrolle und Flexibilität? Das WebDevOps Docker-Setup ermöglicht es Ihnen, alles nach Ihren Bedürfnissen anzupassen.
Bereit, TYPO3 intelligenter, schneller und sauberer auszuführen? Lassen Sie uns eintauchen und TYPO3 auf die richtige Weise dockerisieren.
Bevor wir in den Schritt-für-Schritt-Leitfaden eintauchen... Wenn Sie neugierig sind, wie Entwickler Docker mit TYPO3 verwenden, möchten Sie vielleicht unseren Begleitartikel lesen:
Was ist TYPO3?
TYPO3 ist ein kostenloses, Open-Source Content Management System (CMS), das Unternehmen und Organisationen dabei unterstützt, ihre Websites zu erstellen, zu verwalten und zu erweitern. Es wurde 1997 von Kasper Skårhøj gegründet und ist seitdem zu einer der beliebtesten CMS-Plattformen geworden - insbesondere in Europa.
TYPO3 ist in PHP geschrieben und verwendet TypoScript, eine leistungsstarke Konfigurationssprache, die fortschrittliche Anpassungsmöglichkeiten und Flexibilität bietet. Sie benötigen keine spezielle Software - TYPO3 läuft in Ihrem Browser und gibt Inhalte mit Standard-HTML und JavaScript aus.
Ob Sie eine kleine Unternehmenswebsite, ein Universitätsportal oder eine große Unternehmenswebsite betreiben, TYPO3 kann an Ihre Bedürfnisse angepasst werden.
Stellen Sie sich ein Unternehmens-CMS vor, das sich mit Ihrem Projekt weiterentwickelt, ohne dabei an Komplexität zuzunehmen. Das ist TYPO3 für Sie! Es ist eine Open-Source-Plattform, die sich besonders in folgenden Bereichen auszeichnet:
Hier sind die Hauptgründe, warum TYPO3-Entwickler, Vermarkter und Agenturen TYPO3 für seine:
- Modularität: Lassen Sie Ihre Website genau das tun, was Sie brauchen. Nicht mehr, nicht weniger.
- Sicherheit & Stabilität: Regelmäßige LTS (Langzeitunterstützung) -Versionen helfen Ihnen, jahrelang sicher zu bleiben.
- Skalierbarkeit: Von einer winzigen lokalen Website bis zu einer riesigen globalen Plattform kann TYPO3 alles bewältigen.
- Gemeinschaftlich getriebene Entwicklung: Genießen Sie eine lebhafte globale Community, die TYPO3 kontinuierlich verfeinert und weiterentwickelt.
Wussten Sie schon? TYPO3 betreibt über 500.000+ aktive Websites weltweit!
Erfahren Sie mehr über TYPO3-Fakten.
Warum TYPO3 verwenden?
TYPO3 bietet erweiterte Funktionen wie granulare Benutzerrollen, Multi-Site-Verwaltung und ein starkes Ökosystem von Erweiterungen. Es ist ideal für Unternehmen und Agenturen, die Skalierbarkeit und langfristige Unterstützung benötigen.
Warum TYPO3 mit Docker verwenden?
Das manuelle Einrichten von TYPO3 kann viel Zeit in Anspruch nehmen - insbesondere wenn es um PHP-Versionen, Webserver, Datenbanken und andere Tools geht. Hier kommt Docker ins Spiel. Es vereinfacht den Prozess, indem es alles, was TYPO3 benötigt, in leichte, tragbare Container verpackt. Das bedeutet, dass Ihre TYPO3-Umgebung auf jedem Gerät gleich läuft - egal ob Sie auf Windows, macOS, Linux oder in der Cloud sind. Keine Konfigurationsprobleme mehr, keine "es funktioniert auf meinem Gerät" Probleme.
Vorteile der Verwendung von TYPO3 in Docker:
- Umweltkonsistenz: Beseitigen Sie Probleme mit "es funktioniert auf meinem Gerät", indem Sie überall das gleiche Container-Image ausführen.
- Skalierbarkeit: Starten Sie mehrere Containerinstanzen für Lastenausgleich oder Updates ohne Ausfallzeiten.
- Portabilität: Verschieben oder replizieren Sie Ihr gesamtes TYPO3-Setup schnell über verschiedene Server oder Cloud-Anbieter.
- Isolation & Sicherheit: Container halten Anwendungs- und Systembibliotheken getrennt.
Für wen ist dieser Leitfaden gedacht?
- Neue Docker-Benutzer, die sich mit containerbasiertem Hosting beschäftigen.
- Erfahrene DevOps-Profis, die nach einem einsatzbereiten Docker-Compose-Schnipsel für TYPO3 suchen.
Container vs Virtuelle Maschinen in Docker.
Bevor wir tiefer in Docker für TYPO3 eintauchen, ist es wichtig zu verstehen, wie sich Container von herkömmlichen virtuellen Maschinen (VMs) unterscheiden. Beide helfen dabei, Anwendungen zu isolieren, aber sie tun dies auf sehr unterschiedliche Weise.
Merkmal | Virtuelle Maschinen (VMs) | Container |
Architektur | Enthält ein vollständiges Betriebssystem, Hypervisor und die Anwendung | Teilt den Host-OS-Kernel; isoliert auf Prozessebene |
Boot-Zeit | Langsam – dauert Minuten aufgrund des vollständigen OS-Starts | Schnell – startet in Sekunden, da kein OS-Start erforderlich ist |
Ressourcennutzung | Schwer – jede VM führt ein vollständiges OS aus, verbraucht mehr Speicher und CPU | Leichtgewichtig – minimale Overhead durch gemeinsame Nutzung des Host-OS |
Isolierung | Stark – Isolierung auf Hardware-Ebene durch Hypervisor bereitgestellt | Stark – Isolierung auf Software-Ebene über Namespaces und cgroups |
Portabilität | Mäßig – abhängig vom zugrunde liegenden Hypervisor oder Plattform | Hoch – Container können überall ausgeführt werden, wo Docker unterstützt wird |
Bestes Anwendungsszenario | Ausführen mehrerer Betriebssysteme, Unterstützung von Legacy- oder OS-spezifischen Anwendungen | Ausführen von Mikroservices, CI/CD-Pipelines, TYPO3 und skalierbaren App-Bereitstellungen |
Anforderungen für TYPO3 Docker
Um TYPO3 Docker auszuführen, benötigen Sie hauptsächlich die folgenden Komponenten:
1. Docker & Docker Compose
- Docker: Installieren Sie Docker, um Container auszuführen.
- Docker Compose: Installieren Sie Docker Compose, um Multi-Container-Setups zu verwalten (wie einen Webserver und eine Datenbank).
2. DDEV (Für die lokale Entwicklung)
DDEV ist ein Open-Source-Tool, das den Prozess der Einrichtung von lokalen Entwicklungsumgebungen mit Docker vereinfacht. Es unterstützt TYPO3 und andere CMS-Plattformen und bietet Entwicklern einen optimierten Workflow.
- Installationsanleitung: DDEV Installation
3. PHP-Version
- PHP: TYPO3 erfordert PHP 7.4 oder höher. Stellen Sie sicher, dass Ihr TYPO3 Docker-Image die richtige PHP-Version enthält (üblicherweise PHP 7.4 oder 8.x).
4. Webserver (Apache oder Nginx)
- Apache oder Nginx: Ein Webserver zur Bereitstellung der TYPO3-Anwendung. Sie können ein vorab konfiguriertes TYPO3 Docker-Image mit Apache und PHP verwenden oder Nginx mit PHP-FPM konfigurieren.
5. Datenbank (MariaDB oder MySQL)
- MariaDB oder MySQL: TYPO3 verwendet in der Regel MariaDB oder MySQL für die Datenbank. Sie können das offizielle TYPO3 Docker-Image für MariaDB oder MySQL verwenden.
6. Docker Compose-Datei
- Definieren Sie Ihre Dienste (Webserver, Datenbank) in einer docker-compose.yml-Datei.
Docker & Docker Compose Übersicht.
- Docker verpackt Anwendungen (wie TYPO3, PHP oder MySQL) in leichte, eigenständige Container.
- Docker Compose verwaltet Multi-Container-Anwendungen über eine einzige YAML-Datei, automatisiert das Verknüpfen von Containern, das Teilen von Volumes und die Kommunikation.
Architektur von Docker Compose & TYPO3.
Erklärung:
- Der Webserver-Container empfängt Traffic auf Port 80 oder 443.
- PHP-FPM führt die TYPO3-Anwendung aus. (Einige bevorzugen einen einzelnen Apache+PHP-Container stattdessen.)
- MariaDB befindet sich in einem separaten Container für die Datenbank.
- Volumes speichern persistente Daten, wie TYPO3-Datei-Uploads oder Logs.
TYPO3 Versionen & Support-Roadmap.
Bevor Sie eintauchen, beachten Sie die Veröffentlichungszyklen von TYPO3:
- LTS (Langzeitunterstützung): In der Regel drei Jahre Updates pro Hauptversion.
- ELTS (Erweiterte LTS): Kostenpflichtige Option, wenn Sie zusätzliche Zeit über die Standard-LTS hinaus benötigen.
Wenn Sie auf einer derzeit unterstützten LTS-Version bleiben, erhalten Sie wichtige Sicherheitspatches und Funktionsverbesserungen.
TYPO3 Version & PHP-Kompatibilität für Composer-Installation.
1. PHP & TYPO3 Kompatibilität
TYPO3 Version | PHP Versionen | Status |
9 ELTS | 7.2–7.4 | Aktiver ELTS |
10 ELTS | 7.2–7.4 | Aktiver ELTS |
11 ELTS | 7.4, 8.0 | Aktiver ELTS |
12 LTS | 8.1–8.4 | Aktiver ELTS |
13 LTS | 8.2–8.4 | Aktiver ELTS |
2. Systemanforderungen
- Webserver: Apache oder Nginx
- Datenbank: MariaDB/MySQL empfohlen
- Composer: Empfohlen für eine reibungslosere TYPO3-Erfahrung
Überprüfen Sie immer die offiziellen Systemanforderungen von TYPO3, um sicherzustellen, dass Sie auf dem neuesten Stand sind.
Installieren TYPO3 mit Docker
Unten finden Sie eine Beispieldatei docker-compose.yml für ein grundlegendes TYPO3-Setup. Es verwendet separate Container für Web/PHP, Datenbank und einen optionalen Composer-Schritt zur Verwaltung von Abhängigkeiten.
Schritt 1. Projektstruktur
my-typo3-project/
├─ docker-compose.yml
├─ public/ (or "typo3cms/")
└─ ... any other project files ...
version: '3.7'
services:
web:
image: nginx:stable
container_name: typo3-web
ports:
- "80:80"
volumes:
- ./public:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- php
networks:
- typo3net
php:
image: php:8.1-fpm
container_name: typo3-php
volumes:
- ./public:/var/www/html
working_dir: /var/www/html
depends_on:
- db
networks:
- typo3net
db:
image: mariadb:10.5
container_name: typo3-db
environment:
- MYSQL_ROOT_PASSWORD=supersecret
- MYSQL_DATABASE=typo3db
- MYSQL_USER=typo3user
- MYSQL_PASSWORD=supersecret
volumes:
- db_data:/var/lib/mysql
networks:
- typo3net
networks:
typo3net:
volumes:
db_data:
Schlüsselpunkte:
- Der Nginx-Container bindet die nginx.conf für die Website-Konfiguration ein und teilt den public/-Ordner.
- Der PHP-Container hat ebenfalls public/, sodass Codeänderungen für beide Container sichtbar sind.
- Der MariaDB-Container ist mit Umgebungsvariablen für den DB-Namen, Benutzer und Passwort konfiguriert.
- Alle Container befinden sich im typo3net-Netzwerk für eine einfache interne DNS-Auflösung (z. B. db als Hostname).
Sample nginx.conf:
server {
listen 80;
server_name localhost;
root /var/www/html/public;
index index.php;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass typo3-php:9000; # the service name:port from docker-compose
}
}
Schritt 4. Ausführen & Komponistenschritte.
- Bilder abrufen und Container starten
docker-compose up -d
Composer (Optional)
Sie können Composer in einem benutzerdefinierten Dockerfile einbetten oder einen einmaligen Container ausführen:
docker run --rm -v $(pwd)/public:/app -w /app composer install
- Wenn Sie die offizielle typo3/cms-base-distribution bevorzugen, können Sie sie lokal abrufen und dann Dateien in public/ kopieren.
3. Berechtigungen
Stellen Sie sicher, dass die Dateibesitzrechte/-berechtigungen für den Benutzer, der PHP innerhalb des Containers ausführt, angemessen sind. Auf Linux könnten Sie Folgendes tun:
sudo chown -R $USER:$USER public
Schritt 5. TYPO3-Installation abschließen.
Sehen Sie unten für eine schrittweise Anleitung, wie Sie TYPO3 einrichten und installieren.
Wie man den TYPO3-Installation Assistenten startet
Sobald alle Serverkonfigurationen abgeschlossen sind, ist es an der Zeit, das Setup über den TYPO3-Installationsassistenten abzuschließen. Dieser benutzerfreundliche, schrittweise Assistent hilft Ihnen, den Installationsprozess direkt in Ihrem Browser abzuschließen.
TYPO3 Docker vs Andere Plattformen.
Die Wahl der richtigen Umgebung für Ihr TYPO3-Projekt hängt von Ihren technischen Anforderungen, Ihrem Budget und Ihren Skalierungsplänen ab. Hier ist ein schneller Vergleich, um Ihnen bei der Entscheidung zu helfen.
Plattform | Ideal für | Hauptvorteile | Wichtige Hinweise |
Docker / Docker Compose | Lokale Entwicklungs , Test oder Microservices Setups | Lightweight, fast to deploy, reproducible environments | Needs Docker expertise, not ideal for large production without orchestration |
Ubuntu (Self-Managed) | Entwickler und Teams, die volle Kontrolle und Anpassung wünschen | Free, open-source, highly flexible, large community support, easy optimization for TYPO3 | Requires server management skills (updates, security, performance tuning) |
Google Cloud Platform | Teams, die bereits das Google-Ökosystem nutzen | Easy G Suite integration, powerful analytics tools, scalable infrastructure | Slightly higher learning curve for beginners |
AWS (Amazon Web Services) | Skalierbare Produktionsumgebungen | High availability, global reach, flexible resources, strong security | Slightly higher learning curve for beginners |
Microsoft Azure | Unternehmen, die Microsoft-Technologien verwenden | Seamless integration with Windows, Office, Active Directory, hybrid cloud | Licensing and costs may be higher |
Platform.sh | Entwickler mit Fokus auf CI/CD und Automatisierung | Git-based workflows, automatic scaling, zero-downtime deployments | Less control over underlying infrastructure, premium pricing |
TYPO3 Docker Tipps & Best Practices.
- Verwenden Sie .env-Dateien für sensible Daten und verwenden Sie sie in verschiedenen Projekten erneut.
- Setzen Sie TYPO3_CONTEXT, um zwischen Entwicklung/Staging/Produktion zu unterscheiden:
environment:
- TYPO3_CONTEXT=Development
- Aktivieren Sie Xdebug mit DDEV zum Debuggen: ddev xdebug on
- TYPO3 verlässt sich stark auf OPcache, um schnell zu laufen, also stellen Sie sicher, dass es in Ihrer php.ini-Datei ordnungsgemäß eingerichtet ist.
- Außerdem, wenn Sie Composer verwenden, sperren Sie immer die TYPO3-Version (wie ^13.1) anstelle von dev-master, um unerwartete Updates zu vermeiden.
Fehlerbehebung bei häufigen TYPO3 Docker-Problemen.
- Weißer Bildschirm nach der Installation Dies geschieht normalerweise aufgrund falscher Datei- oder Ordnerberechtigungen. Verwenden Sie
ddev ssh
oder greifen Sie auf den Container zu, um die Berechtigungen zu überprüfen und zu korrigieren. - Fehler "Keine Datenbankverbindung" Stellen Sie sicher, dass Ihr Datenbankcontainer läuft. Überprüfen Sie auch den Datenbanknamen, Benutzernamen und das Passwort in TYPO3 erneut - sie müssen mit den Werten in Ihrer Docker- oder DDEV-Konfiguration übereinstimmen.
- TYPO3-Website wird im Browser nicht geöffnet Überprüfen Sie die Porteinstellungen in Ihrer
docker-compose.yml
-Datei. Zum Beispiel sollte dort80:80
stehen, damit die Website unterlocalhost
verfügbar ist. Wenn Sie DDEV verwenden, bestätigen Sie, dass der DDEV-Router ordnungsgemäß funktioniert. - Bildverarbeitungsprobleme in TYPO3 TYPO3 benötigt PHP-Erweiterungen wie
gd
oderimagick
zur Verarbeitung von Bildern. Stellen Sie sicher, dass diese Erweiterungen in Ihrem PHP-Dockercontainer installiert und aktiviert sind.
Abschluss.
Das Containerisieren Ihrer TYPO3-Anwendung mit Docker und Docker Compose bietet eine moderne, reproduzierbare Umgebung. Durch die Trennung Ihrer Dienste (Web, PHP-FPM, Datenbank) in separate Container erhalten Sie eine bessere Modularität, einfachere Skalierbarkeit und verbesserte Zuverlässigkeit.
Ob Sie gerade erst anfangen oder Ihre Umgebung feinabstimmen, Docker erleichtert, beschleunigt und flexibilisiert die Arbeit mit TYPO3. Vom ersten TYPO3-Login-Bildschirm bis zur umfassenden Bereitstellung bietet Docker Ihnen die Tools, um Ihre TYPO3-Projekte selbstbewusst aufzubauen, zu skalieren und zu verwalten.
Viel Spaß beim TYPO3en mit Docker!
FAQ für TYPO3 Docker
Ja, aber es wird nur empfohlen, wenn Sie Erfahrung mit Docker haben. Stellen Sie für die Produktion sicher, dass Sie optimierte Images, sichere Konfigurationen und eine ordnungsgemäße Volume-/Datenverarbeitung verwenden. Tools wie Kubernetes oder Docker Swarm werden häufig für skalierbare Bereitstellungen verwendet.
Es wird für einen saubereren Microservices-Ansatz empfohlen, Sie können zur Vereinfachung jedoch auch einen einzelnen php:apache-Container verwenden.
Just switch the image to mysql:8.0 (or another version) in the docker-compose.yml and update environment variables accordingly.
Either use a Dockerfile that installs Composer or run a separate Composer container. Some prefer building a custom image with Composer baked in.
Nein. Obwohl DDEV die einfachste und anfängerfreundlichste Methode ist, können Sie für mehr Kontrolle und Flexibilität auch benutzerdefinierte Docker Compose-Setups oder WebDevOps TYPO3-Images verwenden.
Mounten Sie Volumes für public/fileadmin oder andere relevante Verzeichnisse. Dadurch bleiben die Daten auch dann erhalten, wenn Container zerstört werden.
Es wird typischerweise für die Entwicklung verwendet. Für die Produktion können Sie Docker Swarm, Kubernetes oder einen anderen Orchestrator verwenden. Kleinere Bereitstellungen können Docker Compose jedoch bei sorgfältiger Verwaltung in der Produktion ausführen.
Sie können Ihrer Nginx-Konfiguration ein SSL-Zertifikat hinzufügen und Port 443 freigeben oder einen Reverse-Proxy (wie Traefik oder Nginx Proxy Manager) vor Ihre Container stellen.
Wenn Sie Composer verwenden, aktualisieren Sie Ihre composer.json-Version, führen Sie „composer update“ aus und starten Sie die Container neu. Für den klassischen .zip-Ansatz ersetzen Sie die Dateien in public/ entsprechend.
Docker Compose ist nicht zwingend erforderlich, vereinfacht aber die Einrichtung mehrerer Container. Sie können praktisch alles in einem Container erledigen, allerdings ist dieser weniger modular.
Führen Sie für die Datenbank entweder einen mysqldump-Befehl im Datenbankcontainer aus oder planen Sie ihn extern. Sichern Sie für Uploads Ihr Volume (Ordner) an einem sicheren Ort.
Sanjay Chauhan
CTO - T3Planet & NITSANSanjay Chauhan, Mitbegründer von NITSAN (Preisgekrönte TYPO3 Agentur ) und Pionier von T3Planet, dem ersten TYPO3 Shop weltweit. Ein wahrer TYPO3-Fanatiker seit 2010. Mit meinem umfangreichen technischen Wissen und…
More From Author