Utiliser des conteneurs pour le développement React.js
Prérequis
Terminez Conteneuriser une application React.js.
Aperçu
Dans cette section, vous apprendrez à configurer des environnements de production et de développement pour votre application React.js conteneurisée en utilisant Docker Compose. Cette configuration vous permet de servir une construction de production statique via Nginx et de développer efficacement à l'intérieur de conteneurs en utilisant un serveur de développement avec rechargement en direct grâce à Compose Watch.
Vous apprendrez à :
- Configurer des conteneurs distincts pour la production et le développement
- Activer la synchronisation automatique des fichiers en utilisant Compose Watch en développement
- Déboguer et prévisualiser vos modifications en temps réel sans reconstruction manuelle
Mettre à jour automatiquement les services (Mode Développement)
Utilisez Compose Watch pour synchroniser automatiquement les modifications des fichiers sources dans votre environnement de développement conteneurisé. Cela offre une expérience de développement fluide et efficace sans avoir besoin de redémarrer ou de reconstruire manuellement les conteneurs.
Étape 1 : Créer un Dockerfile de développement
Créez un fichier nommé Dockerfile.dev
à la racine de votre projet avec le contenu suivant :
# =========================================
# Étape 1 : Développer l'application React.js
# =========================================
ARG NODE_VERSION=22.14.0-alpine
# Utiliser une image Node.js légère pour le développement
FROM node:${NODE_VERSION} AS dev
# Définir le répertoire de travail à l'intérieur du conteneur
WORKDIR /app
# Copier d'abord les fichiers liés aux paquets pour tirer parti du mécanisme de mise en cache de Docker
COPY package.json package-lock.json ./
# Installer les dépendances du projet
RUN --mount=type=cache,target=/root/.npm npm install
# Copier le reste du code source de l'application dans le conteneur
COPY . .
# Exposer le port utilisé par le serveur de développement Vite
EXPOSE 5173
# Utiliser une commande par défaut, peut être surchargée dans le fichier Docker compose.yml
CMD ["npm", "run", "dev"]
Ce fichier met en place un environnement de développement léger pour votre application React en utilisant le serveur de développement.
Étape 2 : Mettre à jour votre fichier compose.yaml
Ouvrez votre fichier compose.yaml
et définissez deux services : un pour la production (react-prod
) et un pour le développement (react-dev
).
Voici un exemple de configuration pour une application React.js :
services:
react-prod:
build:
context: .
dockerfile: Dockerfile
image: docker-reactjs-sample
ports:
- "8080:8080"
react-dev:
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "5173:5173"
develop:
watch:
- action: sync
path: .
target: /app
- Le service
react-prod
construit et sert votre application de production statique en utilisant Nginx. - Le service
react-dev
exécute votre serveur de développement React avec rechargement en direct et remplacement de module à chaud. watch
déclenche la synchronisation des fichiers avec Compose Watch.
NotePour plus de détails, consultez le guide officiel : Utiliser Compose Watch.
Étape 3 : Mettre à jour vite.config.ts pour s'assurer qu'il fonctionne correctement dans Docker
Pour que le serveur de développement de Vite fonctionne de manière fiable à l'intérieur de Docker, vous devez mettre à jour votre vite.config.ts
avec les bons paramètres.
Ouvrez le fichier vite.config.ts
à la racine de votre projet et mettez-le à jour comme suit :
/// <reference types="vitest" />
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig({
base: "/",
plugins: [react()],
server: {
host: true,
port: 5173,
strictPort: true,
},
});
NoteLes options
server
dansvite.config.ts
sont essentielles pour exécuter Vite dans Docker :
host: true
permet au serveur de développement d'être accessible depuis l'extérieur du conteneur.port: 5173
définit un port de développement cohérent (doit correspondre à celui exposé dans Docker).strictPort: true
garantit que Vite échoue clairement si le port n'est pas disponible, plutôt que de changer silencieusement.Pour plus de détails, consultez la documentation de configuration du serveur Vite.
Après avoir terminé les étapes précédentes, votre répertoire de projet devrait maintenant contenir les fichiers suivants :
├── docker-reactjs-sample/
│ ├── Dockerfile
│ ├── Dockerfile.dev
│ ├── .dockerignore
│ ├── compose.yaml
│ ├── nginx.conf
│ └── README.Docker.md
Étape 4 : Démarrer Compose Watch
Exécutez la commande suivante depuis la racine de votre projet pour démarrer votre conteneur en mode watch :
$ docker compose watch react-dev
Étape 5 : Tester Compose Watch avec React
Pour vérifier que Compose Watch fonctionne correctement :
-
Ouvrez le fichier
src/App.tsx
dans votre éditeur de texte. -
Localisez la ligne suivante :
<h1>Vite + React</h1>
-
Changez-la en :
<h1>Bonjour depuis Docker Compose Watch</h1>
-
Enregistrez le fichier.
-
Ouvrez votre navigateur à l'adresse http://localhost:5173.
Vous devriez voir le texte mis à jour apparaître instantanément, sans avoir besoin de reconstruire manuellement le conteneur. Cela confirme que la surveillance des fichiers et la synchronisation automatique fonctionnent comme prévu.
Résumé
Dans cette section, vous avez mis en place un flux de travail complet de développement et de production pour votre application React.js en utilisant Docker et Docker Compose.
Voici ce que vous avez accompli :
- Créé un
Dockerfile.dev
pour rationaliser le développement local avec le rechargement à chaud - Défini des services
react-dev
etreact-prod
distincts dans votre fichiercompose.yaml
- Activé la synchronisation des fichiers en temps réel en utilisant Compose Watch pour une expérience de développement plus fluide
- Vérifié que les mises à jour en direct fonctionnent de manière transparente en modifiant et en prévisualisant un composant
Avec cette configuration, vous êtes maintenant équipé pour construire, exécuter et itérer sur votre application React.js entièrement à l'intérieur de conteneurs — de manière efficace et cohérente entre les environnements.
Ressources associées
Approfondissez vos connaissances et améliorez votre flux de travail de développement conteneurisé avec ces guides :
- Utiliser Compose Watch – Synchronisez automatiquement les modifications du code source pendant le développement
- Constructions multi-étapes – Créez des images Docker efficaces et prêtes pour la production
- Meilleures pratiques Dockerfile – Rédigez des Dockerfiles propres, sécurisés et optimisés.
-
Référence du fichier Compose – Apprenez la syntaxe complète et les options disponibles pour configurer les services dans
compose.yaml
. - Volumes Docker – Persistez et gérez les données entre les exécutions de conteneurs
Prochaines étapes
Dans la section suivante, vous apprendrez à exécuter des tests unitaires pour votre application React.js à l'intérieur de conteneurs Docker. Cela garantit des tests cohérents dans tous les environnements et supprime les dépendances à la configuration de la machine locale.