🚀 6.3 Docker & Buildpacks: Infraestrutura de Elite
Na modernização de sistemas, não usamos mais o Docker apenas para “rodar a aplicação”. Nós o usamos para garantir a paridade absoluta entre os ambientes de Desenvolvimento, Staging e Produção.
🏗️ Adeus Plugins Legados
O antigo docker-maven-plugin do Spotify caiu em desuso. Na Engenharia Premium, utilizamos o suporte nativo do Spring Boot aos Cloud Native Buildpacks.
Criando sua Imagem de Elite (Sem Dockerfile!)
O Spring Boot 3.5 consegue transformar seu código Java em uma imagem Docker otimizada e segura sem que você precise escrever um Dockerfile. Basta executar:
./mvnw spring-boot:build-image -Dspring-boot.build-image.imageName=greendogdelivery:latestIsso gerará uma imagem baseada em Paketo Buildpacks, contendo apenas o necessário para rodar o seu JAR de forma performática.
📦 Docker Compose: O Orquestrador do Desenvolvedor
Para o sistema Green Dog, precisamos de serviços auxiliares (como MariaDB). Em vez de instalar manualmente no seu computador, usamos um docker-compose.yml na raiz do projeto:
services:
database:
image: mariadb:10.11
environment:
MARIADB_ROOT_PASSWORD: root
MARIADB_DATABASE: greendog
ports:
- "3306:3306"O Recurso Premium: spring-boot-docker-compose
No Spring Boot 3.5, se você adicionar a dependência de suporte ao Docker Compose, o Spring Boot inicia o banco de dados automaticamente quando você roda a aplicação e a encerra quando você para o projeto.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-docker-compose</artifactId>
<optional>true</optional>
</dependency>IMPORTANT
Segurança e Isolamento: Com Docker, você nunca mais terá problemas de “na minha máquina funciona”. O ambiente é isolado e imutável.
No próximo capítulo, faremos um resumo das conquistas deste módulo e nos prepararemos para os desafios avançados!