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/ZmkThKLK
- Nom du fichier :
report.md
à la racine du répertoire - Devoir sur Cyberlearn : mettre le lien de la pull request GitLab dans le champ texte
- Délai: 1 semaine
- Laboratoire noté
Tâches
Estimer son travail
- Estimez le temps nécessaire pour réaliser ce laboratoire
- Découpez le travail en tâches pour faciliter l'estimation
- Lorsque vous aurez terminé le laboratoire, comparez le temps estimé avec le temps réellement passé
Tâche | Temps estimé | Temps réel | Commentaire |
---|---|---|---|
Estimation | 10m | 15m | ... |
... | ... | ... | ... |
Total | 2h | 1h30 | ... |
Git
- Reprenez votre projet sur GitLab du laboratoire précédent (HEIG-VD DevOps)
- Mettez tout votre travail sur une branche
feature/02-docker
et faites une merge request (MR) surmain
- Séparez votre travail en commits cohérents avec des messages de commit clairs et concis
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
- Regardez dans les documentations officielles des frameworks pour trouver des exemples de Dockerfile
- Suivez les bonnes pratiques pour les Dockerfiles
- Frontend
- Utilisez 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
- N'oubliez pas les
.dockerignore
- Dans votre rapport, justifier vos choix dans vos Dockerfiles
Docker Compose
- Créez 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
- Depuis la racine du projet, on doit pouvoir
- Ajoutez un service
database
- Utilisez une base de données PostgreSQL
- Utilisez les crédentials suivants:
- user: postgres
- password: postgres
- database: postgres
- Exposez le port 5432
- Ajoutez un volume pour persister les données (on doit pouvoir supprimer le conteneur
docker compose rm
et le recréer sans perdre les données) - Vous pouvez utiliser DBeaver pour visualiser les données
- Indiquez les dépendances entre les services
- Dans votre rapport, justifier vos choix pour le docker compose et la database
Evaluation
Critères de réussite
Pour atteindre le 4 :
- Le rapport est complet
- Le rendu sur GitLab est correct et dans les temps
- Le Docker Compose fonctionne (on peut démarrer les deux applications et la base de données)
Critères d'amélioration
Pour atteindre le 6 :
- Bonne justification des choix techniques (utilisation des bonnes pratiques)
- Lisibilité du code
- Les commits sont cohérents et bien organisés
- Persistance des données, dockerignore, dépendances des services, ...
- Rédaction du rapport (concis, clair, bien structuré, ...)