3.1 Création de Dockerfile pour le frontend (ReactJS)
À cette étape, on va créer un Dockerfile pour chacun des trois services de notre application multi-conteneurs : le frontend en ReactJS, le backend en Python (Flask) et la base de données PostgreSQL. Le Dockerfile définit les instructions pour créer une image Docker pour chaque service.
Crée un fichier Dockerfile dans le répertoire frontend :
cd frontend
touch Dockerfile
Contenu du Dockerfile pour le frontend :
# Utiliser l'image de base node
FROM node:14
# Configurer le répertoire de travail
WORKDIR /app
# Copier package.json et package-lock.json pour installer les dépendances
COPY package*.json ./
# Installer les dépendances
RUN npm install
# Copier les autres fichiers du projet
COPY . .
# Configurer le port 3000
EXPOSE 3000
# Lancer l'application
CMD ["npm", "start"]
Ce Dockerfile fait les étapes suivantes :
- Utilise l'image de base
node:14
. - Configure le répertoire de travail
/app
. - Copie les fichiers
package.json
etpackage-lock.json
. - Installe les dépendances avec
npm install
. - Copie tous les fichiers du projet dans le répertoire de travail.
- Ouvre le port
3000
pour accéder à l'application. - Lance l'application avec
npm start
.
3.2 Création de Dockerfile pour le backend (Flask)
Crée un fichier Dockerfile dans le répertoire backend :
cd backend
touch Dockerfile
Contenu de Dockerfile pour le backend :
# On utilise l'image de base python
FROM python:3.12
# On définit le répertoire de travail
WORKDIR /app
# On copie le fichier requirements.txt pour installer les dépendances
COPY requirements.txt ./
# Installation des dépendances
RUN pip install --no-cache-dir -r requirements.txt
# On copie les autres fichiers du projet
COPY . .
# On définit le port 5000
EXPOSE 5000
# On lance l'application
CMD ["python", "run.py"]
Ce Dockerfile effectue les étapes suivantes :
- Utilise l'image de base
python:3.12
. - Définit le répertoire de travail
/app
. - Copie le fichier
requirements.txt
. - Installe les dépendances avec
pip install
. - Copie tous les fichiers du projet dans le répertoire de travail.
- Ouvre le port
5000
pour accéder à l'application. - Lance l'application avec
python run.py
.
3.3 Création du Dockerfile pour la base de données (PostgreSQL)
Pour la base de données PostgreSQL, on va utiliser l'image officielle, donc créer un Dockerfile personnalisé n'est pas nécessaire. À la place, on va configurer PostgreSQL via docker-compose.yml
.
3.4 Compilation et test des images Docker
Après avoir créé le Dockerfile pour le frontend et le backend, c'est important de tester leur compilation.
Compilation de l'image Docker pour le frontend :
cd frontend
docker build -t task_management_frontend .
Compilation de l'image Docker pour le backend :
cd ../backend
docker build -t task_management_backend .
Vérification du fonctionnement des containers :
Lancement du container pour le frontend :
docker run -p 3000:3000 task_management_frontend
Lancement du container pour le backend :
docker run -p 5000:5000 task_management_backend
Va sur l'adresse http://localhost:3000 pour vérifier le frontend, et http://localhost:5000 pour vérifier le backend.
GO TO FULL VERSION