Aller au contenu principal

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âcheTemps estiméTemps réelCommentaire
Estimation10m15m...
............
Total2h1h30...

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) sur main
  • Séparez votre travail en commits cohérents avec des messages de commit clairs et concis

Docker

  • Dockeriser les deux applications frontend et backend 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
    • 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
  • 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é, ...)