Déployer une application Spring Boot dans un environnement conteneurisé moderne nécessite de concilier rapidité de démarrage, taille d'image réduite et scalabilité automatique. Google Cloud Run s'impose aujourd'hui comme une solution serverless incontournable pour exécuter des conteneurs sans gérer d'infrastructure sous-jacente.
1. Préparation du projet Spring Boot
Avant la conteneurisation, assurez-vous d'utiliser une version récente de Spring Boot (3.x+) avec Java 17 ou Java 21. Pour optimiser les temps de démarrage sur Cloud Run, l'utilisation de Spring Native (AOT) ou d'un Dockerfile multi-stage est fortement recommandée.
Voici un exemple de Dockerfile optimisé :
FROM eclipse-temurin:21-jdk-alpine AS build
WORKDIR /app
COPY . .
RUN ./mvnw clean package -DskipTests
FROM eclipse-temurin:21-jre-alpine
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]2. Push de l'image vers Google Artifact Registry
Créez un dépôt Docker dans Artifact Registry au niveau de votre projet GCP :
gcloud artifacts repositories create my-repo \
--repository-format=docker \
--location=europe-west1 \
--description="Dépôt Docker pour microservices"Puis compilez et poussez l'image via la commande Google Cloud Build :
gcloud builds submit --tag europe-west1-docker.pkg.dev/VOTRE_PROJECT_ID/my-repo/my-service:v1 .3. Déploiement automatisé sur Cloud Run
Une fois l'image disponible dans le registre, le déploiement sur Cloud Run s'effectue en une seule commande en spécifiant le port HTTP d'écoute :
gcloud run deploy my-service \
--image=europe-west1-docker.pkg.dev/VOTRE_PROJECT_ID/my-repo/my-service:v1 \
--platform=managed \
--region=europe-west1 \
--allow-unauthenticated \
--port=8080Astuce Performance : Définissez l'option --min-instances=1 si vous souhaitez éviter les cold starts (démarrages à froid) pour vos API critiques.Conclusion
Grâce à Google Cloud Run et Artifact Registry, vous disposez d'un pipeline d'exécution robuste et hautement disponible pour vos API Spring Boot, avec une gestion automatique de la montée en charge et de la facturation à l'usage exact.