Configurer Docker Hub
Apprends à créer, taguer et pousser une image Docker de ton app React Router 7 sur Docker Hub. Préparation essentielle au déploiement CI/CD.
Préparer Docker Hub pour accueillir nos images
Docker Hub est le « GitHub des conteneurs » : on y stocke les images buildées
en CI puis on les télécharge sur le VPS avec un simple
docker pull algomax/react-router-7:production.
Dans cette leçon tu vas :
- Créer un repository privé ou public sur Docker Hub.
- Taguer et pousser manuellement une première image (pour bien comprendre).
- Connecter le CLI Docker à ton compte.
- Mettre à jour
docker-composepour pointer vers l’image hébergée. - Préparer les secrets nécessaires aux prochaines GitHub Actions.
C’est parti !
1. Créer le repository sur Docker Hub
- Va sur hub.docker.com et connecte-toi.
- Clique sur Create → Repository.
- Renseigne :
- Namespace : ton pseudo Docker Hub (ex.
algomax). - Name :
react-router-7. - Visibility :
- Public : gratuit, image visible par tout le monde.
- Private : une seule image gratuite ; sinon 5 €/mois.
- Namespace : ton pseudo Docker Hub (ex.
Tip
Le nouveau dépôt est accessible sous algomax/react-router-7.
2. Taguer et pousser une image en local
Nous avons déjà un Dockerfile fonctionnel (voir la leçon précédente).
On crée un tag explicite :
1docker build -t algomax/react-router-7:1.0.0 .
Vérifie qu’il apparaît dans Docker Desktop :
1docker images | grep react-router-7
Exemple de sortie :
1algomax/react-router-7 1.0.0 137MB
2.1 Se connecter au registre
1docker logout # au cas où2docker login # saisir username + PAT
Le Personal Access Token (PAT) se génère dans Docker Hub → Account Settings → Security → New token (scope read/write, pas d’expiration).
2.2 Pousser l’image
1docker push algomax/react-router-7:1.0.0
Quelques secondes plus tard le tag apparaît dans l’UI Docker Hub avec sa taille compressée (~137 Mo dans le transcript).
Important
3. Ajuster le docker-compose
Dans l’environnement de PROD on tire l’image au lieu de la reconstruire :
1services:2web:3image: algomax/react-router-7:1.0.04platform: linux/amd64 # ↩️ nécessaire si tu développes sur puce Apple Silicon5env_file: .env.production6restart: always7ports:8- "3000:3000"
platform: linux/amd64 résout l’erreur vue dans la vidéo :
1no matching manifest for linux/arm64 in the manifest list entries
4. Tester le pull localement
On purge d’abord le cache Docker pour simuler une machine « vierge » :
1docker system prune --all --volumes --force
Puis :
1docker compose -f docker-compose.prod.yml up -d
Le client télécharge l’image depuis Docker Hub et démarre le conteneur.
Ouvre http://localhost:3000 – ton appli React Router 7 tourne à nouveau,
preuve que le pipeline pull → run est OK.
5. Stocker les secrets dans GitHub
Prochaine étape : la CI va devoir push l’image. Ajoute les deux secrets dans ton repo GitHub :
| Nom | Valeur |
|---|---|
DOCKERHUB_USERNAME | algomax (ton namespace) |
DOCKERHUB_TOKEN | le PAT généré à l’étape 2.1 |
1Settings → Secrets and variables → Actions → New secret
Ces variables seront référencées dans le workflow :
1- uses: docker/login-action@v22with:3username: ${{ secrets.DOCKERHUB_USERNAME }}4password: ${{ secrets.DOCKERHUB_TOKEN }}
6. Récap concret des commandes du transcript
1# 1. Build local avec tag explicite2docker build -t algomax/react-router-7:1.0.0 .34# 2. Authentification CLI5docker login67# 3. Push vers Docker Hub8docker push algomax/react-router-7:1.0.0910# 4. Purge locale pour tester le pull11docker system prune --all --volumes --force1213# 5. Pull & run via compose14docker compose -f docker-compose.prod.yml up -d
Points clés à retenir
- Repository Docker Hub = stockage central de tes images.
- Tag clair (
1.0.0,production,latest) : facilite le déploiement multi-environnements. docker loginindispensable avantdocker pushet avant ledocker pullautomatique sur ton VPS.- Ajoute
platform: linux/amd64dansdocker-composesi tu développes sur Apple Silicon. - Les secrets Docker Hub doivent être enregistrés dans GitHub avant de créer les actions CI/CD.
Tip
Et maintenant ?
Dans la prochaine leçon on branche ces opérations dans GitHub Actions :
le build + push deviendront automatiques à chaque git push sur main
ou dev.
Direction Configurer les GitHub Actions → tu vas aimer voir la CI passer
toute seule 🟢 !
Comprendre les concepts fondamentaux
Quelle est la principale différence entre les composants client et serveur dans React ?
Optimisation des performances
Quelle technique est recommandée pour éviter les rendus inutiles dans React ?
Architecture des données
Quel hook permet de gérer les effets de bord dans un composant React ?