Las imágenes de Docker se pueden construir a través del complemento Docker de Maven
Comienzo rápido
Agregar complemento Docker en pom.xml
<glugin> <MoupRid> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <versión> 0.4.13 </versión> <necuteation> <imageName> LinyUantongxue/docker-dema: 0.0.1 </imageNeN docker-demo is the image name (corresponding to DockerHub repository name), 0.0.1 is the label name (equivalent to version number) <baseImage>java</baseImage> // Specify the base image, equivalent to FROM Directive <entryPoint>["java","-jar","app.jar"]</entryPoint> // equivalent to the ENTRYPOINT directive <resources> <resource> <TargetPath>/</TargetPath> <Directory> $ {Project.Build.Directory} </Directory> // Especifique el directorio raíz que se copiará, $ {Project.Build.Directory} significa el directorio de destino <incluir> $ {Project.build.finalnnnnni $ {Project.Build.FinalName} .JAR se refiere al archivo jar empaquetado </ recursos> </recursos> </figuration> </tugin> Ejecute el siguiente comando para construir una imagen de Docker
MVN Clean Package Docker: Build
Ejecutar imágenes de Docker para ver la imagen que acaba de construir
Leer el archivo Dockerfile
No tiene que especificar BaseImage y EntryPoint al leer archivos DockerFile
<glugin> <MoupRid> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <versión> 0.4.13 </versevere> <necutation> <dockerDirectory> $ {proyect.basedirir}/src/main/docker </ dockerdirectory> // especifica el archivo dockerfile que se leerá que se leerá que se leerá que se leerá que se leerá que se leerá que se leerá que se leerá que se leerá que se leerá para leer que se leerá que se leerá para leer el archivo Dockerfile que <icename> Linyuantongxue/Docker-Demo: 0.0.1 </ imagename> // Especifique el nombre de la imagen, Linyuantongxue es el nombre del repositorio (correspondiente al nombre de usuario de Dockerhub), Docker-Demo es el nombre de imagen (correspondiente al repositorio de DockerHub), 0.0.1 es el nombre de la etiqueta (equivalente a la versión) <recursos> <recursos> <Resourios> <TargetPath>/</TargetPath> <Directory> $ {Project.Build.Directory} </Directory> // Especifique el directorio raíz que se copiará, $ {Project.Build.Directory} significa el directorio de destino <incluir> $ {Project.build.finalnnnnni $ {Project.Build.FinalName} .JAR se refiere al archivo jar empaquetado </ recursos> </recursos> </figuration> </tugin>Atar el complemento a una fase para ejecutar
Hay tales necesidades en muchos escenarios. Por ejemplo, cuando el complemento ejecuta el paquete MVN Clean, el complemento construye automáticamente la imagen Docker. Para lograr esto, solo necesita unir el objetivo del complemento a una determinada fase.
El formato de comando maven es: fase MVN: objetivo. La fase une la fase del ciclo de vida de construcción del objetivo y el objetivo de ejecución de la configuración de objetivos
Simplemente agregue la siguiente configuración:
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> // Execute build target in maven lifecycle package<executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </execution> </ejecutiones> // $$$$$$$$$$$$$$$$$$$$$$$ump $$$$$$$$$$$$$$$$$$$$$$$$ump $$$$$$$$$$$$$$$$$$$$$$$ump $$$$$$$$$$$$$$$$$$$$$$$$ump <IrmeName> LinyUantongxue/Docker-Demo: 0.0.1 </icename> <saseMage> java </saseImage> <etningPoint> ["java", "-jar", "app.jar"] </entryPoint> <cources> <contrationPath> <incluye> $ {Project.Build.FinalName} .JAR </include> </ recursos> </ recursos> </figuration> </plugin>Espejo
Use el complemento Maven para empujar las imágenes a Docker Hub
Modifique la configuración del archivo de información de configuración global Maven.xml y configure la información del usuario de Docker Hub
<Servidores> <vero> <id> Docker-Hub </id> # DockerHub El nombre de usuario de este sitio web debe ser todo lo minúscula para ser correcto <SeNeName> LinyUantongxue </sserername> <Bassword> 765371578ly </bassword> <Configuration> <Email> [email protected] </correo electrónico> </configuración> </servidor> </Servidor>
Modificar el archivo POM
<glugin> <MoupRid> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <versión> 0.4.13 </versión> <figuration> <imageName> LinyUantongxue/docker-dema: 0.0.1 </icenameName> <SaseImage> java </baseImage> <nitchpoint> ["java", "-jar", "app.jar"] </etningpoint> <cougscons> <contrationce> <targetPath>/</targetPath> <Directory> $ {Project.Build.Directory} </Directory> <Incluye> $ {Project.Build.FinalName} .JAR </include> </recursos> </recursos> <! setting.xml, utilizado para presionar imágenes-> <verid> docker-hub </ververid> </figuration> </tugin>Ejecute el siguiente comando para agregar el identificador PushImage para indicar la imagen de Push
MVN Clean Package Docker: Build -Dpushimage
En el ejemplo anterior, el nombre de ImageN se puede usar para especificar el nombre y la etiqueta de la imagen, y el elemento ImageTags se puede usar para especificar el nombre de la imagen y la etiqueta de manera más flexible, de modo que se puedan especificar dos etiquetas para la misma imagen.
<Configuration> <IrmeName> LinyUantongxue/Docker-Demo </ imageName> <IrageTags> <imagetag> 0.0.1 </ imageTag> <imageTag> Último </ imageTag> </imageTags> </figuration>
También puede usar el parámetro DockerimageTags para especificar el nombre de la etiqueta al construir el comando
La copia del código es la siguiente:
Paquete MVN Clean: Build -DpusHimagETags -DdockerImageTags = Último -DdockerImageTags = otra etiqueta
Si necesita construir repetidamente una imagen con el mismo nombre de la etiqueta, establezca FORCETAGS en verdad
<Configuration> // .......
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.