DOCKER
CONTENEURS
D'APP
Emballage du site web de Cornucopia
(un WordPress)
Le plan du laboratoire
WordPress et MySQL dans un seul conteneur, en quatre étapes :
Une image officielle PHP avec Apache, on y ajoute MySQL, comme au labo Web et données et son guide.
Pas de nouvelle installation : on redéploie le site original cornucopia.projet.autos, ses fichiers et sa base de données.
Détruire le conteneur, constater la perte du contenu, puis corriger avec le volume qui rend les données persistantes.
Les tests de charge, cette partie ne change pas.
Le dessin du laboratoire : un seul conteneur
SERVEUR
lampUne image officielle de Docker Hub, MySQL ajouté à la main
Serveur : ce qu'il faut faire
MISSION : Créer une image Docker LAMP à partir d'une image officielle.
Tâches :
- Partir de l'image officielle php:8.2-apache de Docker Hub.
- Exposer le port 80 dans le Dockerfile et le « forwarder » au port 8080 avec l'option -p au lancement.
- Activer la réécriture d'adresses (a2enmod rewrite, AllowOverride).
- Installer MariaDB dans l'image, ainsi que ses drivers web.
- Écrire un script (demarrer-services.sh) qui envoie la base de données en arrière-plan et le serveur web en avant-plan (grâce à exec).
Résultat attendu : une page web du conteneur est ouverte dans le navigateur de la machine hôte à localhost:8080. Suivre le GUIDE.
SITE
wordpressLa boutique de Cornucopia renaît dans votre conteneur
Site : ce qu'il faut faire
MISSION : Redéployer le site WordPress de Cornucopia dans le conteneur.
Tâches :
- Visiter le site original, cornucopia.projet.autos : le site en ligne que votre conteneur doit reproduire.
- Télécharger et déballer sauvegarde-cornucopia-web.zip (39 Mo) : le dossier fichiers-wordpress/ et l'export base-de-donnees.sql.
- Copier les fichiers dans /var/www/html/ (avec chown www-data) et l'export dans /docker-entree/.
- Créer et importer la base de données en tenant compte des valeurs de wp-config.php et de README.md.
- Déposer Adminer (un seul fichier, adminer.php) dans le site pour inspecter la base de données.
Résultats attendus : la boutique de Flora s'affiche sur localhost:8080, avec ses articles et ses images. Le panneau administrateur localhost:8080/wp-admin peut être utilisé avec les comptes de l'agence, de flora et de hazel. Adminer montre les tables de la base de données. Suivre le GUIDE.
LIEN
volumePerdre les données, puis les protéger pour de bon
Lien : ce qu'il faut faire
MISSION : Rendre les données du site persistantes avec un volume.
Tâches :
- Publier un court article de test dans le WordPress conteneurisé et vérifier qu'il s'affiche.
- Détruire le conteneur (docker rm -f), en relancer un neuf, recharger : constater la perte de l'article.
- Relancer le conteneur avec le volume -v ${PWD}/mysql:/var/lib/mysql.
- Republier l'article, détruire et relancer encore : constater la survie des données.
Résultat attendu : on peut ajouter un article dans le site, détruire le conteneur, le recréer et ne pas perdre cet article. Suivre le GUIDE.
CHARGE
jmeterLe conteneur sous pression, chiffres à l'appui
Charge : ce qu'il faut faire
MISSION : Mesurer la tenue en charge du site conteneurisé avec JMeter.
Tâches :
- Reprendre le laboratoire Test de charge avec JMeter, cette partie ne change pas.
- Cibler http://localhost:8080/, la page d'accueil du WordPress conteneurisé.
- Mesurer en montée en charge : temps de réponse moyen, débit, taux d'erreur.
- Noter le seuil d'utilisateurs simultanés où les temps de réponse se dégradent.
Résultat attendu : un rapport JMeter contre le conteneur, point de comparaison pour la suite du cours. Suivre le GUIDE.