Aller au contenu

Préparer le repository

Créer uniquement la structure nécessaire au projet.

Dans ce chapitre : 4 étapes et 13 preuves de validation.

Objectif. Toutes les prochaines commandes partiront du même dossier.

État du projet avant cette étape. Docker fonctionne dans la VM. Il faut maintenant travailler dans le dépôt Git rendu à 42.

La racine du repository est le dossier qui contiendra Makefile et srcs. pwd permet de savoir où l’on est ; ls montre ce qui se trouve ici.

Clone ou ouvre ton repository dans la VM, entre dedans avec cd, puis vérifie le chemin avant de créer quoi que ce soit.

À EXÉCUTER DANSDans la VM · à la racine du repository
pwd
ls -la
Ce que fait chaque partie
  1. pwd affiche le dossier courant.
  2. ls -la affiche aussi les fichiers cachés, dont .git si le dépôt est initialisé.
Résultat attendu

pwd se termine par le nom de ton repository et ls montre .git.

Si cela échoue

Si .git n’apparaît pas, tu n’es peut-être pas dans le dépôt cloné.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

Question de soutenance — Qu’est-ce qui ne doit jamais être dans Git ?

La VM, les containers, les volumes, les données et les vrais credentials.

Étape 20 — Créer les fichiers obligatoires de la racine

Section intitulée « Étape 20 — Créer les fichiers obligatoires de la racine »

Objectif. La racine contiendra les quatre documents que 42 attend.

État du projet avant cette étape. Le repository est vide ou presque.

Makefile lancera le projet. README.md présentera le projet. USER_DOC.md expliquera l’usage. DEV_DOC.md expliquera l’installation et la maintenance.

Crée seulement les fichiers vides maintenant. Leur contenu sera écrit quand le projet fonctionnera, afin de documenter des commandes déjà testées.

Fichiers ou emplacements concernés

  • Makefile
  • README.md
  • USER_DOC.md
  • DEV_DOC.md
À EXÉCUTER DANS🖥️ Dans la VM · 📁 racine du repository
touch Makefile README.md USER_DOC.md DEV_DOC.md
Ce que fait chaque partie
  1. touch : crée chaque fichier s’il n’existe pas, sans écraser son contenu s’il existe.
Résultat attendu

ls montre les quatre fichiers à la racine.

Si cela échoue

Vérifiez pwd : vous devez être à la racine du dépôt et avoir les droits d’écriture.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

Question de soutenance — Qu’est-ce qui ne doit jamais être dans Git ?

La VM, les containers, les volumes, les données et les vrais credentials.

Étape 21 — Créer les dossiers des trois services

Section intitulée « Étape 21 — Créer les dossiers des trois services »

Objectif. Chaque futur service aura un endroit clair pour son image et sa configuration.

État du projet avant cette étape. La racine existe, mais aucun dossier Docker n’est encore créé.

requirements contiendra un dossier mariadb, wordpress et nginx. Dans chaque dossier : Dockerfile décrit l’image, conf contient la configuration, tools contient le script de démarrage.

Lance la commande depuis la racine. Ensuite, parcours l’arborescence avec find et retrouve les trois dossiers à l’écran.

Fichiers ou emplacements concernés

  • srcs/requirements/
À EXÉCUTER DANS🖥️ Dans la VM · 📁 racine du repository
mkdir -p srcs/requirements/{mariadb,wordpress,nginx}/{conf,tools}
touch srcs/docker-compose.yml srcs/.env
touch srcs/requirements/{mariadb,wordpress,nginx}/{Dockerfile,.dockerignore}
Ce que fait chaque partie
  1. mkdir -p : crée toute la hiérarchie ; -p accepte les dossiers déjà présents.
  2. {...} : expansion du shell qui évite de répéter les trois services.
  3. touch : crée Compose, .env, les Dockerfiles et .dockerignore.
Résultat attendu

find srcs -maxdepth 4 -print montre la structure attendue.

Si cela échoue

Si votre shell ne développe pas les accolades, créez les dossiers séparément. Ne lancez pas la commande depuis srcs, sinon vous obtiendrez srcs/srcs.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

Question de soutenance — Qu’est-ce qui ne doit jamais être dans Git ?

La VM, les containers, les volumes, les données et les vrais credentials.

Étape 22 — Préparer les secrets et les données locales

Section intitulée « Étape 22 — Préparer les secrets et les données locales »

Objectif. Les mots de passe et les futures données auront un emplacement hors de Git.

État du projet avant cette étape. Les dossiers de configuration existent. Il manque encore les valeurs locales qui ne doivent jamais être rendues.

secrets contient les vrais mots de passe utilisés sur ta VM. /home/<login>/data contiendra la base et les fichiers persistants. .gitignore empêche Git de proposer les secrets.

Crée les quatre fichiers secrets vides, ajoute secrets/ à .gitignore, puis crée les deux dossiers de données avec ton vrai login. Ne saisis encore aucun mot de passe dans une commande.

Fichiers ou emplacements concernés

  • secrets/
  • .gitignore
  • /home/<login>/data/
À EXÉCUTER DANS🖥️ Dans la VM · 📁 racine du repository
mkdir -p secrets secrets.example
touch secrets/db_password.txt secrets/db_root_password.txt secrets/wp_admin_password.txt secrets/wp_user_password.txt
Ce que fait chaque partie
  1. mkdir -p : crée les répertoires local et d’exemple.
  2. touch : crée les fichiers que Docker secrets lira plus tard.
Résultat attendu

Les quatre fichiers utilisés par Compose existent localement sous secrets/.

Si cela échoue

Ne saisissez aucune valeur dans une commande susceptible d’être conservée dans l’historique du shell.

À ÉCRIRE DANS📄 .gitignore · contenu minimal à adapter
secrets/
/home/
*.pem
*.key
.DS_Store
Ce que fait chaque partie
  1. secrets/ : exclut toutes les valeurs confidentielles locales.
  2. *.pem et *.key : évitent de publier accidentellement certificats ou clés privées.
  3. /home/ : protège d’un éventuel dossier de données créé au mauvais endroit dans le dépôt.
Résultat attendu

git status ne propose aucun fichier sous secrets/.

Si cela échoue

Si un secret a déjà été commité, .gitignore ne suffit pas : révoquez-le et retirez-le de l’historique.

À EXÉCUTER DANS🖥️ Dans la VM · depuis n’importe quel dossier · remplacez <login>

Avant de copier : remplacez <login> par vos valeurs.

sudo mkdir -p /home/<login>/data/{mariadb,wordpress}
sudo chown -R <login>:<login> /home/<login>/data
Ce que fait chaque partie
  1. sudo mkdir -p : crée les deux chemins de données hôte.
  2. chown -R : donne à votre utilisateur la propriété initiale ; les services pourront ensuite ajuster leurs sous-dossiers si nécessaire.
Résultat attendu

ls -ld /home/<login>/data/* montre deux dossiers.

Si cela échoue

Un chemin littéral contenant <login> est une erreur : remplacez-le. En cas de permission denied, vérifiez sudo et les propriétaires.

Preuves de validation 0 / 4

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

Question de soutenance — Qu’est-ce qui ne doit jamais être dans Git ?

La VM, les containers, les volumes, les données et les vrais credentials.