pipeline ci/cd pour microservice node.js avec jenkins et docker
13/10/2025
Mettre en place un pipeline CI/CD robuste permet de livrer votre microservice Node.js plus vite, sans régression et en toute confiance. Dans ce guide, nous verrons comment automatiser le build, les tests et le déploiement d’un microservice grâce à Jenkins et Docker. Vous suivrez toutes les étapes, du Dockerfile au Jenkinsfile, y compris l’intégration des tests et le push vers un registre Docker.
pipeline ci/cd pour microservice Node.js avec Jenkins et Docker
1. Préparer votre microservice Node.js
Commencez par un projet basique :
mkdir my-service && cd my-service
npm init -y
npm install express --save
Ajoutez un server.js
exposant une route simple :
const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Hello CI/CD!'));
app.listen(3000, () => console.log('Live on 3000'));
Exemple de Dockerfile
FROM node:18-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
2. Installer et configurer Jenkins
Sur un serveur Debian/Ubuntu, installez Jenkins LTS :
sudo apt update
sudo apt install -y openjdk-11-jre
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install -y jenkins
sudo systemctl start jenkins
Installez ensuite les plugins « Docker Pipeline » et « Git » via l’interface Jenkins.
3. Créer le Jenkinsfile
Placez ce fichier à la racine de votre repo pour définir votre pipeline en tant que code :
pipeline {
agent any
environment {
REGISTRY = 'myorg/my-service'
IMAGE_TAG = "${env.BRANCH_NAME}-${env.BUILD_NUMBER}"
}
stages {
stage('Checkout') {
steps { checkout scm }
}
stage('Install') {
steps { sh 'npm ci' }
}
stage('Test') {
steps { sh 'npm test' }
}
stage('Build Docker') {
steps { sh 'docker build -t $REGISTRY:$IMAGE_TAG .' }
}
stage('Push') {
steps {
withCredentials([string(credentialsId: 'docker-hub-token', variable: 'TOKEN')]) {
sh 'echo $TOKEN | docker login -u myuser --password-stdin'
sh 'docker push $REGISTRY:$IMAGE_TAG'
}
}
}
}
post {
success { echo 'Build réussi !' }
failure { echo 'Échec du pipeline.' }
}
}
4. Automatiser les tests avec Jest
Ajoutez Jest pour valider votre code :
npm install jest --save-dev
# Dans package.json
"scripts": {
"test": "jest --coverage"
}
Jenkins affichera ensuite le pourcentage de couverture.
5. Déploiement final
Après push, reliez Jenkins à votre environnement de production ou à un Amazon Web Services ECR pour automatiser le déploiement.
bonnes pratiques
- Versionnez vos images (évitez le tag « latest »).
- Stockez vos secrets dans les Credentials de Jenkins.
- Utilisez un fichier
.dockerignore
pour alléger vos builds. - Scindez les étapes de test, build et déploiement pour isoler les erreurs.
- Surveillez le temps de chaque stage pour optimiser la performance.
conclusion
En quelques étapes, vous disposez d’un pipeline CI/CD complet pour votre microservice Node.js. Ce workflow réduit les erreurs manuelles, accélère les mises en production et améliore la qualité de votre code. Pour un accompagnement sur mesure, demandez un devis chez Novane.