Les images Docker peuvent être construites grâce au plug-in Docker de Maven
Démarrage rapide
Ajouter un plugin docker dans pom.xml
<Glugin> <GroupId> com.spotify </proncId> <Artifactid> docker-maven-Plugin </refactId> <DERVIÈRE> 0.4.13 </DERNIFRIGATION> <FIFIGIFIE> <IMAMENAME> Linyuantongue / Docker-Demo: 0.0.1 </imagename> // spécifier le nom d'image, Linyuantongxe est le nom de repose (COSTOCKET TO DOCKERhu), Linyuantongx est le nom de repose (COORDET TO DOCKERhu), Linyuantongx est le nom de repose (COORDET TO DOCKERhu), Linyuantongx est le nom de repose (COORDET TO DOCKERhuS Docker-Demo est le nom de l'image (correspondant au nom du référentiel Dockerhub), 0.0.1 est le nom d'étiquette (équivalent au numéro de version) <BaseImage> Java </baseMage> // Spécifiez l'image de base, équivalent à de directive <prenyPoint> ["Java", "- jar", "App.jar"] </ EntryPoint> // équivalent à l'entrée directive <Resource> <BargetPath> / </ TargetPath> <Ar répertoire> $ {project.build.directory} </pertory> // Spécifiez le répertoire racine à copier, $ {project.build.finctory} désigne le répertoire cible <clure> $ {project.build.FinalName} .Jar </clux> // Spécifier le fichier à copier, $ {project.build.FinalName} .jar fait référence au fichier de jar emballé </ ressource> </ ressources> </FIGIGRAGE> </GLANGIN> Exécutez la commande suivante pour créer une image Docker
Docker du package MVN Clean: Build
Exécutez des images Docker pour afficher l'image que vous venez de construire
Lire le fichier dockerfile
Vous n'avez pas à spécifier le BaseImage et le point d'entrée lors de la lecture des fichiers Dockerfile
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> // Specify the Dockerfile file to be read <ImageName> LinyUantongXue / Docker-Demo: 0.0.1 </imageName> // Spécifiez le nom de l'image, Linyuantongxue est le nom du référentiel (correspondant à Dockerhub Username), Docker-Demo est le nom d'image (correspondant à DockerHub Repository), 0.0.1 est le nom de balise (équivalent du numéro de version) <Ressource> <BargetPath> / </ TargetPath> <Ar répertoire> $ {project.build.directory} </pertory> // Spécifiez le répertoire racine à copier, $ {project.build.finctory} désigne le répertoire cible <clure> $ {project.build.FinalName} .Jar </clux> // Spécifier le fichier à copier, $ {project.build.FinalName} .jar fait référence au fichier de jar emballé </ ressource> </ ressources> </FIGIGRAGE> </GLANGIN>Lier le plugin à une phase pour exécuter
Il y a de tels besoins dans de nombreux scénarios. Par exemple, lorsque le plug-in exécute le package MVN Clean, le plug-in construit automatiquement l'image Docker. Pour ce faire, vous n'avez qu'à lier l'objectif du plug-in à une certaine phase.
Le format de commande Maven est: MVN Phase: Objectif. La phase lie la phase du cycle de vie de la construction de la cible et la cible d'exécution de la configuration de l'objectif
Ajoutez simplement la configuration suivante:
<plugin> <proupId> com.spotify </proupId> <Artifactid> docker-maven-Plugin </ artifactid> <version> 0.4.13 </ version> // Exécuter la cible de build dans le package de cycle de vie Maven </ Execution> <Cecution> <Id> build-iMage </id> </pack> </pasuption> <buts> <butard> build </ buffing> </ exécutions> // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ notreez $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$otte $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ notreez $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$otte <ImageName> Linyuantongxue / Docker-Demo: 0.0.1 </ ImageName> <BasiMage> Java </ BaseMage> </ EntryPoint> ["Java", "- Jar", "App.jar"] </ EntryPoint> <sesshers> <SercecE> <Siblenpath> / </ TargetPath> <Directory> $ {Project.Build.Dirctory} <clut> $ {project.build.finalname} .jar </clure> </ ressource> </sessherse> </figionfing> </gingin>Miroir de poussée
Utilisez le plugin Maven pour pousser les images sur Docker Hub
Modifiez les informations sur le fichier d'informations de configuration globale Maven.
<Servers> <Server> <Id> docker-hub </id> # dockerhub Le nom d'utilisateur de ce site Web doit être tous les minuscules pour être correct <nom d'utilisateur> linyuantongxue </sername> <mord du mot de passe> 765371578ly </dassword> <fon configuration> <mail> [email protected] </mail> </FIGIGURATION>
Modifier le fichier POM
<harin> <proupId> com.spotify </proupId> <ArtifactId> docker-maven-Plugin </ artifactid> <in version> 0.4.13 </-version> <fraciliguration> <mageName> linyuantongue / docker-demo: 0.0.1 </imagename> <baseMage> Java </baseImage> <EntryPoint> ["java", "- jar", "app.jar"] </ntrypoint> <salice> <ourcece> <TargetPath> / </ TargetPath> <clutory> $ {project.build.directory} </ Directory> <clut> $ {project.build.FinalName} .jar </rupture> </r / / ressources> Fichier Setting.xml, utilisé pour appuyer sur les images -> <frecrid> Docker-Hub </SverId> </FIGIGURATION> </GLANGIN>Exécutez la commande suivante pour ajouter l'identifiant PushImage pour indiquer l'image push
package MVN Clean Docker: build -dpushimage
Dans l'exemple ci-dessus, l'imageName peut être utilisé pour spécifier le nom et l'étiquette de l'image, et l'élément ImageTags peut être utilisé pour spécifier le nom d'image et l'étiquette de manière plus flexible, afin que deux étiquettes puissent être spécifiées pour la même image.
<In configuration> <ImageName> Linyuantongxue / docker-demo </imageName> <ImageTags> <ImageTag> 0.0.1 </IMageTag> <ImageTag> Dernier </IMageTag> </IMageTags> </ Configuration>
Vous pouvez également utiliser le paramètre DockingImagetags pour spécifier le nom de la balise lors de la construction de la commande
La copie de code est la suivante:
Package MVN Clean: build -dpushimagetags -ddockerimagetags = dernier -ddockerimagetags = un autre-tag
Si vous devez construire à plusieurs reprises une image avec le même nom de balise, définissez ForceTags sur true
<FIFIGRAGE> // ...... <ForceTags> true </FORCETAGS> </FIGIGRURATION>
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.