dockeriser votre application node.js avec Docker Compose et Traefik pour une mise en production sécurisée
15/03/2026
Dans ce guide technique, nous allons dockeriser une application Node.js et la mettre en production avec Docker Compose et Traefik. Vous apprendrez à construire une image optimisée, configurer un proxy inverse automatisé pour le TLS et déployer votre stack en quelques commandes. L’objectif : un processus reproductible, sécurisé et facile à maintenir.
1. préparer le Dockerfile multi-étapes
Le Dockerfile multi-étapes réduit la taille finale de l’image et améliore la sécurité :
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
FROM node:18-alpine AS runtime
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/server.js"]
Explications :
- Étape builder : installe les dépendances et génère les fichiers compilés.
- Étape runtime : ne conserve que le nécessaire pour exécuter l’application.
2. définir le fichier docker-compose.yml
Créez un fichier docker-compose.yml à la racine :
version: "3.8"
services:
app:
image: votre-registry/app:latest
build:
context: .
target: runtime
labels:
- "traefik.enable=true"
- "traefik.http.routers.app.rule=Host(`votre-domaine.com`)"
- "traefik.http.routers.app.entrypoints=websecure"
- "traefik.http.routers.app.tls.certresolver=le"
restart: always
networks:
- web
traefik:
image: traefik:v2.10
command:
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.le.acme.email=admin@votre-domaine.com"
- "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./letsencrypt:/letsencrypt"
networks:
- web
networks:
web:
external: false
3. lancer et vérifier le déploiement
- Construire et démarrer les services :
docker-compose up -d --build - Vérifier les logs Traefik :
docker-compose logs -f traefik - Tester l’accès en HTTPS sur
https://votre-domaine.com.
4. bonnes pratiques pour la production
- Scannez vos images avec
docker scanou un outil interne (technologies/docker). - Limitez les ressources CPU/mémoire dans
docker-compose.ymlpour éviter les débordements. - Activez un monitoring léger (
HEALTHCHECKdans le Dockerfile) et centralisez les logs. - Isoler les volumes importants et chiffrez les données sensibles.
5. passer à l’échelle et CI/CD
Pour une montée en charge, vous pouvez :
- Ajouter un load balancer ou scaler les services via
docker-compose scale app=3. - Intégrer ces étapes dans votre pipeline CI/CD (services/saas) pour automatiser le déploiement.
conclusion
Vous avez désormais un environnement Dockerisé prêt pour la production, avec un proxy Traefik gérant automatiquement les certificats TLS. Ce workflow améliore la sécurité, la maintenabilité et la rapidité de déploiement de votre application Node.js. Pour aller plus loin ou obtenir un accompagnement personnalisé, contactez nos experts.

