Ir para o conteúdo principal

Buscar no CooLWJ

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

Idioma

As 3 melhores maneiras de criar imagens Docker com SpringBoot

Este artigo apresentará 3 técnicas para criar uma imagem Docker de uma aplicação SpringBoot usando Maven.

(1)Usar o recurso integrado ao spring-boot-maven-plugin build-image.

(2)Usar o recurso do Google jib-maven-plugin。

(3)Usar dockerfle-maven-plugin。

Aplicação Spring Boot

Para facilitar a prática, é necessário um projeto Spring Boot.

Endereço do projeto de demonstração:

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

Ambiente do projeto:

  • Java 11

  • Maven 3.6.3

Usar mvn package é possível gerar o pacote jar normalmente.

também pode funcionar normalmente:

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

Página de teste:

http://localhost:8080/hello

O projeto de demonstração está pronto. Agora vamos colocar em prática os 3 métodos de construção de imagens.

I、build-image do plugin Maven do Spring Boot

O Spring Boot já vem com seu próprio plugin para criar imagens Docker. Não precisamos fazer nenhuma alteração, pois ele já está no spring-boot-starter-parent do pom.xml.

Você não precisa escrever um Dockerfile nem se preocupar com mais nada: o plugin cuida de tudo, incluindo as questões de segurança, memória e desempenho recomendadas pelo Spring.

Basta executar:

mvn spring-boot:build-image

Após a conclusão da execução, você verá uma mensagem de sucesso:

Executar o teste do contêiner:

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

Atenção:a porta local mapeada aqui é 9090。

II、jib-maven-plugin

Jib é um plugin para Maven e Gradle usado para criar imagens Docker.

Este plugin tem uma característica muito marcante:Não é necessário instalar o Docker localmente,o que é muito conveniente para a integração contínua, pois o Jib pode enviar diretamente para o repositório Docker especificado.

O Jib também dispensa a criação de um Dockerfile.

Também é muito fácil de usar: não é necessário alterar o código e pode-se até manter o pom.xml como está.

Basta executar:

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

é o comando de compilação do maven que conhecemos bem.

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

Especifica o uso do plugin Jib

  • dockerBuild

é o objetivo de execução do plugin Jib,dockerBuild especifica que o Jib deve usar o Docker instalado localmente.

Após a conclusão da execução, você verá uma mensagem de sucesso:

Inicie o contêiner para testar:

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

Atenção:a porta local mapeada aqui é 9091。

III、dockerfile-maven-plugin

Esse plugin exige que escrevamos um Dockerfile, que já está preparado no projeto Domo.

O Dockerfile deve ficar no diretório raiz do projeto, junto com o pom.xml.

Em seguida, é necessário adicionar algumas configurações ao pom.xml para especificar o repositório, a tag e também o que foi definido no Dockerfile acima JAR_FILE。

Executar mvn package nessa etapa, a imagem será criada automaticamente; após a execução, aparecerá a mensagem:

imagem

Executar o contêiner:

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

Atenção: a porta local mapeada é 9092。

Resumo

Dessas 3 opções, a mais prática é a forma nativa do SpringBoot: você não precisa fazer nada por conta própria e pode usá-la diretamente.

O que mais se destaca é o Jib, que dispensa a instalação local do Docker, permite enviar diretamente para o repositório especificado e também é muito simples de usar.

Parece que o plugin mais trabalhoso é o dockerfile-maven-plugin: é preciso escrever um Dockerfile e ainda adicionar configurações,Mas,na prática, ele é o mais fácil de usar, pois os 2 primeiros dependem do ambiente de rede (você sabe como é); mesmo configurando um espelho de imagens do Docker, ainda ocorrerão erros, pode experimentar.

Ilustração temática sobre Spring Boot, Maven e construção de imagens Docker


Comentários

Enviando

Escolha seu tema

O tema é aplicado a todo o site.