Skip to content

Latest commit

 

History

History
76 lines (65 loc) · 3.84 KB

File metadata and controls

76 lines (65 loc) · 3.84 KB

TODO — TYPO3 Docker Images

Done

  • Base image (Debian Bookworm + Sury PHP + FPM/Nginx Varianten)
  • FPM-only Variante — PHP-FPM ohne Nginx (Kubernetes, eigener Webserver)
  • Alpine → Debian Bookworm Migration — Sury PHP Pakete statt docker-php-ext-install
  • Deklaratives Env-to-Config Mapping (additional.php)
  • Demo image (TYPO3 13 LTS + TYPO3 14)
  • Redis cache backend (hash, pages, rootline)
  • Random admin password generation + credentials file
  • Healthcheck via /healthz endpoint
  • Credentials aus Dockerfiles entfernt
  • Smoke tests (PHP extensions, Composer, Nginx, GraphicsMagick)
  • Composer via multi-stage COPY (COPY --from=composer:2.9)

Testing & Quality

  • make test + make test-fpm nach allen Refactorings laufen lassen
  • GitHub Actions CI/CD — automatische Builds + Tests bei Push/PR
  • Integration-Tests — Demo hochfahren, Login prüfen, Health-Endpoint testen
  • Trivy Security-Scan — Vulnerability Scan der gebauten Images
  • Hadolint — Dockerfile Linting in die Pipeline einbauen
  • GHA-Cache optimieren — Registry-Cache für Multi-Arch Builds
  • Build-Zeit < 10 Min — Base Images in ~40s pro Variante

Features

  • Multi-Arch Builds (linux/amd64 + linux/arm64) — Apple Silicon + Linux Server
  • PostgreSQL Compose-Variante — Base Image hat bereits pdo_pgsql
  • Production Compose — docker-compose.prod.yml mit Traefik SSL als Template
  • Mailpit — Mail-Testing im Demo-Setup (SMTP + Web-UI)
  • TYPO3 Introduction Package als Demo-Content Option (demo:13-intro Tags)
  • S3/Garage Storage — FAL-Driver fuer S3-kompatiblen Object Storage (fileadmin auf S3/Garage statt lokalem Volume)
  • PHP 8.5 Support — sobald Sury-Pakete verfuegbar

Deployment

  • Traefik Reverse-Proxy mit SSL (integriert in docker-compose.prod.yml)
  • Kubernetes Helm Chart
  • GHCR Publishing — Images in die GitHub Container Registry pushen
  • Docker Hub Mirror — offizielle typo3/ Images

"Contrib"

  • Basis-Framework mit docker-compose und Dockerfile
  • Basis-Init Script mit GIT repo und composer install
  • Basis-Setup für nutzbaren "Core"
  • basis .htaccess rüberkopieren aus GIT
  • bei neustarten des images alle tasks (cache clear, extension setup, cache warmup ordentlich ausführen)
  • Xdebug mit einbauen, standardmäßig deaktiviert. Via ENV args in docker compose nutzbar machen: XDEBUG_MODE: debug XDEBUG_CONFIG: client_host=host client_port=9003 XDEBUG_SESSION: 1
  • Git my.typo3.org push replacement für typo3core/.git/config einbauen (git config --get remote.origin.pushurl)
  • Git commit template einbauen (typo3core/Build/git-hooks/commit-msg)
  • Git commit hooks einbauen (typo3core/Build/git-hooks/unix+mac/pre-commit)
  • Ausprobieren ob runTests.sh ordentlich lauffähig ist ("docker compose exec web typo3core/Build/Scripts/runTests.sh -s ...")
  • Build erstellen und "community" docker-compose.contribution.yml (mit image statt dockerfile!) erzeugen
  • Makefile abgleichen
  • GuitHub actions abgleichen
  • Doku ergänzen:
    • Mission statement: Einfache Usage, zero dependencies ausser Docker compose (und ggf. GIT wenn man pushen will). Kein TDK, kein host-side PHP, kein DDEV.
    • einfache usage, erklärung docker-compose file, mounts
    • wie dinge wirklich in gerrit committen können (git setup)
    • wie git reset / commit / push durchführen
    • wie container / state resetten
    • wie andere ports nutzen
    • wie auf DB zugreifen mit adminer, sequelace, heidisql
    • wie ports exposen für netzwerk usage
    • wie eigene composer packages requiren (docker compose exec)

Dokumentation

  • README aktualisieren — Debian, FPM-Variante, Env Mapping, Build-Anleitung
  • SECURITY.md — Hinweise zu Credentials, Volumes, Netzwerk
  • CONTRIBUTING.md — Build-Anleitung, Entwickler-Setup