Images & Best Practices
Schlank & sicher bauen
Ein eigenes Image entsteht aus einem Dockerfile. Mit ein paar Prinzipien wird es klein, schnell gebaut und sicher.
Ein einfaches Dockerfile
FROM php:8.3-apache
WORKDIR /var/www/html
# Zuerst nur die Abhängigkeitsdatei kopieren und installieren …
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts
# … dann den restlichen Code
COPY . .
EXPOSE 80
Warum diese Reihenfolge?
Docker baut in Schichten (Layers) und cached sie. Ändert sich eine Schicht, werden alle folgenden neu gebaut. Deshalb: Selten Geändertes (Abhängigkeiten) vor häufig Geändertes (Code) kopieren – dann bleibt der teure install-Schritt im Cache, solange sich die Abhängigkeiten nicht ändern.
Die wichtigsten Prinzipien
- Kleine Basis-Images:
-slim- oder-alpine-Varianten statt der großen Standard-Images. .dockerignorepflegen:node_modules,.git, lokale Artefakte gehören nicht ins Image.- Versionen pinnen:
php:8.3stattphp:latest– reproduzierbar statt „was gerade aktuell ist". - Keine Secrets ins Image: Passwörter und Tokens kommen über Umgebungsvariablen zur Laufzeit, nie in die Layer.
- Multi-Stage-Builds: Build-Werkzeuge im Build-Stage lassen, nur das Ergebnis ins schlanke finale Image übernehmen.
Merke: Eine
.dockerignoreist schnell vergessen und kostet sonst massiv – ohne sie wandert schlimmstenfalls das ganzenode_modules-Verzeichnis in jedes Build.
Fazit
Docker macht Umgebungen reproduzierbar, das Onboarding schnell und die lokale Arbeit nah an Produktion. Wer die Grundlagen – Container, Compose, Volumes – verinnerlicht hat, spart im Alltag viel Zeit und Ärger.