Django

Django & Docker

Dockerfile, docker-compose, Multi-Stage-Builds, Volumes, Netzwerke, Entwicklung vs. Produktion

20 Interview-Fragen·
Senior
1

Welches Basis-Image wird für eine Django-Anwendung in der Produktion empfohlen?

Antwort

Das python:3.x-slim-Image wird empfohlen, da es eine Balance zwischen reduzierter Größe und Kompatibilität bietet. Es enthält die wesentlichen Bibliotheken und vermeidet unnötige Abhängigkeiten von vollständigen Images. Alpine-Images sind zwar leichter, können aber Kompatibilitätsprobleme mit einigen kompilierten Python-Bibliotheken (wie psycopg2) verursachen.

2

Was ist der Hauptvorteil eines Multi-Stage-Builds für eine Django-Anwendung?

Antwort

Multi-Stage-Builds reduzieren die Größe des finalen Images erheblich, indem sie die Build-Umgebung (mit allen Kompilierungstools) von der Laufzeitumgebung trennen. Abhängigkeiten werden in einer ersten Stufe kompiliert, dann werden nur die notwendigen Dateien in das finale Image kopiert, wobei Build-Tools, temporäre Dateien und Caches ausgeschlossen werden.

3

Wie stellt man in einer docker-compose.yml sicher, dass der Django-Container wartet, bis PostgreSQL bereit ist, Verbindungen anzunehmen?

Antwort

Die depends_on-Direktive allein garantiert nur den Start des Containers, nicht die Verfügbarkeit des Dienstes. Um zu warten, bis PostgreSQL tatsächlich bereit ist, muss man ein wait-for-it.sh-Skript oder dockerize verwenden, oder die service_healthy-Bedingung mit einem Healthcheck. Dieser Ansatz verhindert Verbindungsfehler beim Start der Django-Anwendung.

4

Was ist der Unterschied zwischen COPY und ADD in einem Dockerfile für eine Django-Anwendung?

5

Wie optimiert man das Docker-Layer-Caching bei der Installation von Python-Abhängigkeiten?

+17 Interview-Fragen

Meistere Django für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten