🚀 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:latest

Isso 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!


⬅️ Capítulo Anterior | Próximo Capítulo ➡️