[Spring Boot 2.3] – Gerando uma imagem docker com buildpacks.

Olá,

Com a chegada do spring boot 2.3 agora temos um novo goal chamado “build-image”, na verdade por debaixo dos panos a spring preparou uma integração com o projeto: https://buildpacks.io/. Para quem ainda não conhece o projeto, esse trata de aspectos relacionados a geração de containers multicamadas de forma simplifica usando varios conceitos interessantes, no futuro talvez aborde um pouco mais sobre o tema, mas por hoje vou apenas mostrar como podemos fazer a geração de containers usando o novo goal.

E aqui está o comando, tudo que temos que fazer agora para gerar a imagem é executar o comando abaixo na raiz do seu “projeto spring boot 2.3”:

$ mvn spring-boot:build-image

Por padrão o nome do container será o nome do seu projeto e a tag será a versão do seu projeto.

Para rodar o container recem criado basta executar:

$ docker run -it -p 8080:8080 demo:0.0.1-SNAPSHOT

Se você está usando o spring tool suite, segue um exemplo abaixo:

Usando DIVE para entender os layers da imagem docker

Para entender melhor o trabalho do buildpack, vamos analisar a imagem usando o dive ( https://github.com/wagoodman/dive )

Iteragindo com o dive é possível ver cada layer do container, incluindo a mais importante: 18MB → Nossa Aplicação.

Habilitando o modo “layered” para criaçao das imagens

Basta adicionar a configuração abaixo no seu pom.xml:

Essa é uma alternativa para aquele cenário onde apenas o código fonte da aplicação sofreu modificação, dessa forma nem todas as layers precisam ser geradas novamente.

olhando novamente para o dive é possivel ver a diferença:

Isso é tudo pessoal, agora a geração de um container para um projeto spring boot se resume apenas em rodar build-image.

Abrcs.

Natanael Fonseca

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s