Avancé
Optimisation avancée de Dockerfile
Réécrire un Dockerfile standard en utilisant le multi-stage build pour réduire la taille et renforcer la sécurité.
📝 Содержимое промпта
Agis en tant qu'Architecte Logiciel spécialisé dans les conteneurs.
Voici un Dockerfile basique pour une application Python (Flask) qui est inefficace :
FROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Ta tâche est de :
1. Réécrire ce Dockerfile en utilisant une construction 'multi-stage' pour séparer les dépendances de compilation du runtime final.
2. Utiliser une image 'alpine' ou 'slim' pour l'étape finale afin de réduire drastiquement la taille de l'image.
3. Implémenter un utilisateur non-root (non-privileged user) pour des raisons de sécurité.
4. Utiliser le cache des couches (layer caching) intelligemment en copiant d'abord les fichiers requirements.txt avant le reste du code source.
5. Expliquer chaque changement et son impact (taille, sécurité, vitesse de build).