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
- 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-tools
en attendant qu'elle soit merge surmain
).- Faire une merge request (MR) sur
main
une 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
frontend
etbackend
du 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.yml
pour 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 rm
et 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.