Aller au contenu principal

Rechercher sur CooLWJ

选择搜索范围,输入关键词后按回车。

Langue

Les 3 meilleures méthodes pour créer une image Docker avec SpringBoot

Cet article présente 3 techniques pour construire une image Docker d’une application SpringBoot avec Maven.

(1)Utiliser la fonctionnalité intégrée à spring-boot-maven-plugin build-image.

(2)Utiliser l’outil de Google jib-maven-plugin。

(3)Utiliser dockerfle-maven-plugin。

Application Spring Boot

Pour faciliter la mise en pratique, il faut un projet Spring Boot.

Adresse du projet de démonstration :

https://github.com/davelms/me...

Environnement du projet :

  • Java 11

  • Maven 3.6.3

Utiliser mvn package permet de construire normalement le fichier jar.

peut également fonctionner normalement :

java -jar target/demo-application-0.0.1-SNAPSHOT.jar

Page de test :

http://localhost:8080/hello

Le projet de démonstration est prêt ; passons maintenant à la mise en pratique des 3 méthodes de construction d’images.

I、build-image du plugin Maven de Spring Boot

Spring Boot intègre son propre plugin de construction d’images Docker. Nous n’avons aucune modification à effectuer, puisqu’il est déjà présent dans spring-boot-starter-parent dans pom.xml.

Vous n’avez pas besoin d’écrire de Dockerfile ni de vous soucier du reste : le plugin s’occupe de tout, notamment des questions de sécurité, de mémoire et de performances sur lesquelles Spring formule des recommandations.

Il suffit d’exécuter :

mvn spring-boot:build-image

Une fois l’exécution terminée, un message de réussite s’affiche :

Exécuter les tests du conteneur :

docker run -p 9090:8080 -t demo-application:0.0.1-SNAPSHOT

Remarque : le port local mappé ici est 9090。

II、jib-maven-plugin

Jib est un plugin Maven et Gradle qui permet de créer des images Docker.

Ce plugin présente une caractéristique très nette :Aucune installation locale de Docker nécessaire,ce qui est très pratique pour l’intégration continue : Jib peut pousser directement l’image vers le registre Docker indiqué.

Jib ne nécessite pas non plus d’écrire un Dockerfile.

Son utilisation est également très simple : il n’est pas nécessaire de modifier le code, et l’on peut aussi conserver pom.xml tel quel.

Il suffit d’exécuter :

mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild
  • mvn compile

est la commande de compilation maven que nous connaissons bien.

  • com.google.cloud.tools:jib-maven-plugin:2.3.0

spécifie l’utilisation du plugin Jib

  • dockerBuild

est l’objectif d’exécution du plugin Jib,dockerBuild indique à Jib d’utiliser le Docker installé localement.

Une fois l’exécution terminée, un message de réussite s’affiche :

Lancer le conteneur pour le test :

docker run -p 9091:8080 -t demo-application:0.0.1-SNAPSHOT

Remarque : le port local mappé ici est 9091。

III、dockerfile-maven-plugin

Ce plugin exige que nous écrivions un Dockerfile ; celui-ci est déjà prêt dans le projet Domo.

Le Dockerfile doit être placé à la racine du projet, avec pom.xml.

Ensuite, il faut ajouter une configuration dans pom.xml afin de préciser le registre, le tag ainsi que ce qui a été défini dans le Dockerfile ci-dessus : JAR_FILE。

Exécuter mvn package  déclenchera automatiquement la construction de l’image ; une fois l’exécution terminée, le message suivant s’affichera :

image

Exécuter le conteneur :

docker run -p 9092:8080 -t demo-application:0.0.1-SNAPSHOT

Attention : le port local mappé est 9092。

Bilan

Parmi ces 3 méthodes, la plus pratique est celle intégrée à SpringBoot : rien à réaliser soi-même, elle s’utilise directement.

Jib se distingue particulièrement : il ne nécessite pas l’installation locale de Docker, permet de pousser directement les images vers le registre choisi et reste très simple à utiliser.

Ce qui semble le plus fastidieux, c’est le plugin dockerfile-maven-plugin : il faut écrire un Dockerfile et ajouter de la configuration,Cependant,en réalité, c’est le plus pratique, car les 2 premiers dépendent de l’environnement réseau (vous voyez ce que je veux dire) ; même si vous configurez une image Docker, des erreurs se produiront. Vous pouvez essayer.

Illustration thématique sur Spring Boot, Maven et la construction d’images Docker


Commentaires

Envoi en cours

Choisissez votre thème

Le thème s’applique à tout le site.