As imagens do Docker podem ser construídas através do plug-in do Docker do Maven
Início rápido
Adicione o plug -in do Docker no pom.xml
<Plugin> <voundId> com.spotify </frugiD> <stifactId> Docker-maven-plugin </ArtifactId> <versão> 0.4.13 </versão> <figuration> </imagename> linyuantongxue/Docker-Demo: 0.0.1 </imagename> // especificar o nome, o nome da imagem, o nome da imagem, o nome do imageHuEx. Nome), Docker-Demo é o nome da imagem (correspondente ao nome do repositório do DockerHub), 0.0.1 é o nome da etiqueta (equivalente ao número da versão) <FaseImage> java </SealSalageImage> // Especifique a imagem de forma, equivalente a From Directive <Entrypoint> ["Java", "-Jar", "App.Jar. <Source> <TargetPath>/</TargetPath> <Directory> $ {Project.build.directory} </diretório> // Especifique o diretório raiz a ser copiado, $ {Project.build.directory} significa o diretório de destino <cubs> $ {project.build.finalName} .Jar $ {Project.build.FinalName} .jar refere -se ao arquivo JAR embalado Execute o seguinte comando para construir uma imagem do Docker
MVN Pacote limpo Docker: Build
Execute imagens do Docker para ver a imagem que você acabou de construir
Leia o arquivo Dockerfile
Você não precisa especificar BaseImage e entrada ao ler arquivos do DockerFile
<Clugin> <Puperid> com.spotify </frupid> <stifactId> Docker-maven-plugin </stutifactId> <versão> 0.4.13 </versão <figuration> <dockerdirectory> $ {Project.basedir}/src/main/docker </DockerDirectory> <MAGENAME> linyuantongxue/docker-democurgo: 0.0.1 </imagename> // especificar o nome da imagem, Linyuantongxue é o nome do repositório (correspondente ao número de usuário do dockerHub), 0,0.1 é o nome da imagem (o nome do dockerHub), 0,0.1 é o nome da imagem (o nome do DockerHub), 0.1.1 é o nome da imagem (0,0. <TargetPath>/</TargetPath> <Directory> $ {Project.build.directory} </diretório> // Especifique o diretório raiz a ser copiado, $ {Project.build.directory} significa o diretório de destino <incluir> $ {project.build.FinalName,. $ {Project.build.FinalName} .jar refere -se ao arquivo JAR embaladoVincule o plugin a uma fase para executar
Existem tais necessidades em muitos cenários. Por exemplo, quando o plug-in executa o pacote MVN Clean, o plug-in cria automaticamente a imagem do Docker. Para conseguir isso, você só precisa vincular a meta do plug-in a uma determinada fase.
O formato do comando maven é: fase mvn: meta. A fase liga a fase do ciclo de vida de construção do alvo e a meta de execução da configuração de metas
Basta adicionar a seguinte configuração:
<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> </conformions> // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ch não $$$$$$$$ b algumaus $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ch não $$$$$$$$ b algumaus <MAGENAME> LINYUANTONGXUE/DOCKER-DEMO: 0.0.1 </imagename> <Setimage> java </as BASTEIMAGE> <Dor EntryPoint> ["java", "-jar", "App.jar"] </SursionPoint> <course> <course> <monget>/</targethPath> <Directory> $ {Projectory> {ProjectoryB. <incluir> $ {Project.build.finalname} .jar </bitirEmpurre espelho
Use o plug -in maven para empurrar imagens para o hub do docker
Modificar o arquivo de informações de configuração global do Maven.
<servers> <server> <id>docker-hub</id> # DockerHub The username of this website must be all lowercase to be correct <username>linyuantongxue</username> <password>765371578Ly</password> <configuration> <email>[email protected]</email> </configuration> </server></servers>
Modificar o arquivo POM
<Plugin> <GrupId> com.spotify </foupid> <stifactId> Docker-maven-plugin </sutifactId> <versão> 0.4.13 </version> <figuration> </imagename> linyuantongxue/Docker-Demo: 0.0.1 </ageName> <SasTeMage> JAVA <DABEMIMEIMEIMEIMEIMENTO </BASTEMEMOMIMEIMEIMAIMAIMEIMAIMEIMAIMEIMAIMENTE </imagename> <SasMage> <EntryPoint> ["java", "-jar", "App.jar"] </strivePoint> <werends> <werce> <vogetPath>/</TargetPath> <Directory> $ {Project.build.directory} </Directory> <BUNDORY> $ {Project.build.FinalName} .Jar </> Setting.xml, usado para empurrar imagens-> <ServerId> Docker-hub </sererid> </figuration> </plugin>Execute o seguinte comando para adicionar o identificador de pushimage para indicar a imagem push
MVN Pacote limpo Docker: Build -dpushimage
No exemplo acima, o nome do imageName pode ser usado para especificar o nome e a etiqueta da imagem, e o elemento ImageTags pode ser usado para especificar o nome e a etiqueta da imagem com mais flexibilidade, para que dois rótulos possam ser especificados para a mesma imagem.
<FIFIGURATION> <MAGENAME> LINYUANTONGXUE/DOCKER-DEMO </Imagename> <ImageTags> <ImageTag> 0.0.1 </imageTag> <ImageTag> mais recente </imageTag> </imageTags> </figuration>
Você também pode usar o parâmetro DockerImageTags para especificar o nome da tag ao criar o comando
A cópia do código é a seguinte:
MVN Clean Package: Build -DpushImageTags -ddockerImageTags = mais recente -ddockerImageTags = outro tag
Se você precisar criar repetidamente uma imagem com o mesmo nome de tag, defina forcetags como true
<figuration> // ...... <Forcetags> true </stecetags> </figuration>
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.