Docker
Objectifs
- Estimer son travail
- Dockeriser une application
- Créer un Docker Compose
- Appliquer les bonnes pratiques
Rendu
- Rapport individuel en Markdown à rendre avant le prochain cours
- GitHub Classroom : https://classroom.github.com/a/TuhrFmh4
- Nom du fichier :
report.mdà la racine du répertoire - Avec le lien vers la Merge Request GitLab
- Délai: 1 semaine
- Laboratoire noté
Tâches
Estimer son travail
- Estimer le temps nécessaire pour réaliser ce travail.
- Découper le travail en tâches pour faciliter l'estimation.
- Une fois terminé, comparer le temps estimé avec le temps réellement passé.
| Tâche | Temps estimé | Temps passé | Commentaire |
|---|---|---|---|
| Estimation | 10m | 15m | ... |
| ... | ... | ... | ... |
| Total | 2h | 1h30 | ... |
Git
- Reprendre son projet GitLab du laboratoire précédent (DOP Python).
- Travailler sur une nouvelle branche
feature/02-docker(à partir defeature/01-toolsen attendant qu'elle soit merge surmain).- Faire une merge request (MR) sur
mainune fois terminé et demander une revue. - Une fois qu'une MR est acceptée, la merge sur
main.
- Faire une merge request (MR) sur
- Séparer son travail en commits cohérents avec des messages de commit clairs et concis.
Question rapport
Indiquer le lien vers la MR dans le rapport.
Docker
Pour débuter avec Docker
- Dockeriser les deux applications
frontendetbackenddu précédent laboratoire.- On doit pouvoir construire et démarrer les deux applications depuis leur dossier respectif.
- Regarder dans les documentations officielles des frameworks pour trouver des exemples de Dockerfile.
- Suivre les bonnes pratiques pour les Dockerfiles.
- Frontend
- Utiliser nginx comme serveur web
docker build -t frontend . && docker run -p 80:80 frontend
- Backend
docker build -t backend . && docker run -p 8080:80 backend
- Frontend
- Ne pas oublier les
.dockerignore
Question rapport
Justifier ses choix pour les Dockerfiles.
Docker Compose
- Créer un
compose.ymlpour démarrer les deux applications.- Depuis la racine du projet, on doit pouvoir :
- construire les deux applications avec
docker compose build. - démarrer les deux applications avec
docker compose up. - accéder à l'application frontend sur le port 80.
- accéder à l'application backend sur le port 8080.
- arrêter les deux applications avec
docker compose down.
- construire les deux applications avec
- Le Docker Compose doit fonctionner sur un nouvel ordinateur juste en clonant le projet.
- Depuis la racine du projet, on doit pouvoir :
- Ajouter un service
database.- Utiliser une base de données PostgreSQL.
- Utiliser les credentials suivants :
- user :
postgres - password :
postgres - database :
postgres
- user :
- Exposer le port
5432 - Ajouter un volume pour persister les données (on doit pouvoir supprimer les conteneurs
docker compose rmet les recréer sans perdre les données). - Possibilité d'utiliser DBeaver pour visualiser les données.
- Indiquer les dépendances entre les services
Question rapport
Justifier ses choix pour le Docker Compose et la base de données.
Evaluation
L'évaluation se porte sur les critères suivants :
- Rapport
- Le rapport est complet.
- Le rapport est bien structuré et synthétique.
- Les choix techniques sont bien justifiés.
- Fonctionnalités
- Le Docker Compose est fonctionnel.
- Toutes les fonctionnalités sont présentes (persistance, dockerignore, dépendances, …).
- Les bonnes pratiques sont appliquées pour Docker.
- Les bonnes pratiques sont appliquées pour Docker Compose.
- Organisation
- La Merge Request est correctement créée et dans les temps.
- Les commits sont cohérents et bien organisés.
| Note | 1 | 2 | 2.5 | 3 | 3.5 | 4 | 4.5 | 5 | 5.5 | 6 |
|---|---|---|---|---|---|---|---|---|---|---|
| Nombre de critères validés | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
- En gras : critères principaux.
- En italique : critères secondaires.