Die Konfigurationsdateien im Detail
Wie Dockerfile, docker-compose.yml, docker-compose.override.yml und composer.json zusammenspielen, Abschnitt für Abschnitt erklärt.
Das Zusammenspiel
Vier Dateien beschreiben die komplette Appliance. Jede hat eine klar abgegrenzte Aufgabe:
| Datei | Frage, die sie beantwortet | Wirkt beim |
|---|---|---|
composer.json | Welche PHP-Pakete (TYPO3, Extensions) gehören dazu? | Build |
Dockerfile | Wie entstehen die Images für PHP und nginx? | Build |
docker-compose.yml | Welche Container laufen, mit welchen Daten, Variablen und Abhängigkeiten? | Start und Betrieb |
docker-compose.override.yml | Was ist auf diesem Rechner anders? | Start und Betrieb |
Was bei docker compose up -d --build passiert:
- Compose liest
docker-compose.yml, ergänzt sie umdocker-compose.override.ymlund setzt die Werte aus der.envein. - Für die Services mit
buildbaut Docker dasDockerfile: Stageappinstalliert PHP, Systempakete und per Composer alle Pakete lautcomposer.lock. Stagewebübernimmt die fertigen Dateien in ein nginx-Image. - Compose startet
dbundelasticsearch. Sobald die Datenbank gesund ist, startetphp. Dessen Entrypoint installiert TYPO3 beim ersten Mal, aktualisiert sonst das Datenbankschema, leert die Caches und gleicht den Suchindex ab. - Ist
phpgesund, startenwebundscheduler.
Daraus folgt die wichtigste Regel: Code steckt im Image, Daten stecken in Volumes. Änderungen an composer.json, am Dockerfile, an packages/ oder config/ brauchen einen Rebuild. Inhalte, Uploads und Einstellungen aus dem Backend überleben ihn.
- Dockerfile Ein Dockerfile, zwei Images: PHP-FPM mit TYPO3 und nginx mit denselben Dateien. Jede Anweisung erklärt.
- docker-compose.yml Fünf Services, gemeinsame Variablen und Volumes, Healthchecks und die Startreihenfolge.
- docker-compose.override.yml Warum der Keycloak-Hostname im Container umgebogen wird und wie Override-Dateien funktionieren.
- composer.json TYPO3-Systemextensions, Keycloak-Anbindung, lokale Pakete und wie Updates ablaufen.