Django

Django & Docker

Dockerfile, docker-compose, multi-stage builds, volumes, networks, development vs production

20 questions d'entretien·
Senior
1

Quelle image de base est recommandée pour une application Django en production ?

Réponse

L'image python:3.x-slim est recommandée car elle offre un équilibre entre taille réduite et compatibilité. Elle contient les bibliothèques essentielles tout en évitant les dépendances superflues des images complètes. Les images Alpine, bien que plus légères, peuvent poser des problèmes de compatibilité avec certaines bibliothèques Python compilées (comme psycopg2).

2

Quel est l'avantage principal d'un multi-stage build pour une application Django ?

Réponse

Le multi-stage build permet de réduire significativement la taille de l'image finale en séparant l'environnement de build (avec tous les outils de compilation) de l'environnement d'exécution. Les dépendances sont compilées dans un premier stage, puis seuls les fichiers nécessaires sont copiés vers l'image finale, excluant les outils de build, les fichiers temporaires et les caches.

3

Dans un docker-compose.yml, comment garantir que le conteneur Django attend que PostgreSQL soit prêt à accepter des connexions ?

Réponse

La directive depends_on seule ne garantit que le démarrage du conteneur, pas la disponibilité du service. Pour attendre que PostgreSQL soit réellement prêt, il faut utiliser un script wait-for-it.sh ou dockerize, ou encore la condition service_healthy avec un healthcheck. Cette approche évite les erreurs de connexion au démarrage de l'application Django.

4

Quelle est la différence entre COPY et ADD dans un Dockerfile pour une application Django ?

5

Comment optimiser le cache des layers Docker lors de l'installation des dépendances Python ?

+17 questions d'entretien

Maîtrise Django pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement