Spring Boot et Docker : image, CI/CD et déploiement cloud
Docker multi-stage, images optimisées, pipelines CI/CD, health checks, readiness, autoscaling, configuration sécurisée, observabilité et bonnes pratiques…
Introduction
Déployer une application Spring Boot en production implique de maîtriser plusieurs briques : containerisation, pipelines CI/CD, Kubernetes, résilience et observabilité.
Ce chapitre vous guide dans la conception d’un déploiement robuste, sécurisé, performant et industrialisé avec Docker, GitHub Actions/GitLab CI, Kubernetes, readiness/liveness probes, scaling horizontal et bonnes pratiques de production.
Lexique essentiel
Multi-stage build
Technique Docker qui produit des images minimalistes.
Readiness Probe
Vérifie si l’application est prête à recevoir du trafic.
Liveness Probe
Vérifie si l’application est vivante (redémarrage automatique).
HPA
Horizontal Pod Autoscaler : scaling dynamique.
ConfigMap / Secret
Configuration externalisée et sécurisée dans Kubernetes.
Rolling Update
Déploiement progressif sans downtime.
1. Docker — Image optimisée (multi-stage)
Construire une image Docker Spring Boot nécessite un build multi-stage pour obtenir une image minimale, rapide à démarrer et sécurisée.
Dockerfile optimisé
# Stage 1 : Build
FROM maven:3.9-eclipse-temurin-21 AS build
WORKDIR /app
COPY pom.xml .
RUN mvn -B -q dependency:go-offline # couche de dépendances mise en cache
COPY src ./src
RUN mvn -B -DskipTests clean package # les tests tournent dans la CI, pas dans l'image
# Stage 2 : Runtime minimal
FROM eclipse-temurin:21-jre-alpine
RUN addgroup -S app && adduser -S app -G app
USER app # ne jamais exécuter en root
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
La suite de cette leçon est réservée aux abonnés
Les 3 premières leçons de chaque formation sont gratuites. Débloquez la suite pour continuer.
Déjà abonné ? Se connecter
