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.
avec React Router 7
Posez vos questions 24/7 à notre IA experte en React Router 7
Validez vos acquis avec des quiz personnalisés et un feedback instantané
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 :
docker-compose
pour pointer vers l’image hébergée.C’est parti !
algomax
).react-router-7
.Le nouveau dépôt est accessible sous algomax/react-router-7
.
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
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).
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).
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
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.
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 }}
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
1.0.0
, production
, latest
) : facilite le déploiement
multi-environnements.docker login
indispensable avant docker push
et
avant le docker pull
automatique sur ton VPS.platform: linux/amd64
dans docker-compose
si tu développes
sur Apple Silicon.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 🟢 !
Quelle est la principale différence entre les composants client et serveur dans React ?
Quelle technique est recommandée pour éviter les rendus inutiles dans React ?
Quel hook permet de gérer les effets de bord dans un composant React ?
Comment implémenter la gestion des erreurs pour les requêtes API dans React ?
Quelle est la meilleure pratique pour déployer une application React en production ?