Como Containerizar um Serviço Spring Boot com Docker
Como Containerizar um Serviço Spring Boot Integrado ao Qwen com Docker
Se você já integrou o modelo Qwen ao seu sistema Spring Boot e agora deseja colocar essa aplicação em produção de forma eficiente, então Docker é a ferramenta certa para isso.
Neste artigo, vamos mostrar como transformar sua aplicação Spring Boot que usa a API do Qwen em um container Docker, permitindo que ela seja executada de maneira consistente em qualquer ambiente: local, servidor ou nuvem.
O Que É Docker?
Docker é uma plataforma que permite empacotar aplicações junto com suas dependências em containers isolados. Isso facilita o deploy, pois elimina problemas do tipo:
"Funciona na minha máquina, mas não no servidor."
Com Docker, você define como sua aplicação deve rodar através de um Dockerfile
, e depois pode gerar uma imagem reutilizável que contém tudo necessário para executar seu software.
Pré-Requisitos
Antes de começar, certifique-se de ter:
- ✅ JDK 17+
- ✅ Maven instalado
- ✅ Docker instalado (
docker --version
) - ✅ Um projeto Spring Boot integrado à API do Qwen
- ✅ Sua API Key do DashScope
Passo a Passo: Dockerizando o Projeto Spring Boot
1. Gere o JAR da Aplicação
No diretório raiz do projeto Spring Boot, execute:
mvn clean package
Isso gera um arquivo .jar
dentro da pasta target/
, por exemplo: qwen-springboot-api.jar
.
Dica: Certifique-se de que o nome do JAR esteja correto no pom.xml
(
ou
).
2. Crie o Arquivo Dockerfile
Na raiz do projeto, crie um arquivo chamado Dockerfile
(sem extensão) com o seguinte conteúdo:
# Usa uma imagem oficial do OpenJDK como base
FROM openjdk:17-jdk-slim
# Define o autor/mantenedor da imagem
LABEL maintainer="seu-email@example.com"
# Define o diretório de trabalho dentro do container
WORKDIR /app
# Copia o JAR compilado para dentro do container
COPY target/qwen-springboot-api.jar app.jar
# Define variáveis de ambiente (ex: API Key do DashScope)
ENV DASHSCOPE_API_KEY=SUA_API_KEY_AQUI
# Executa a aplicação Java
ENTRYPOINT ["java", "-jar", "app.jar"]
⚠️ Substitua SUA_API_KEY_AQUI
pela sua chave real do DashScope (ou use secrets no deployment final).
3. Construa a Imagem Docker
No terminal, na pasta raiz do projeto, execute:
docker build -t qwen-springboot .
Isso cria uma imagem chamada qwen-springboot
.
4. Execute o Container
Agora, rode a aplicação em um container Docker:
docker run -d -p 8080:8080 --name qwen-app qwen-springboot
Onde:
-d
: Roda em background (detached mode)-p 8080:8080
: Mapeia a porta 8080 do container para a máquina host--name qwen-app
: Nome do container
Pronto! Sua aplicação Spring Boot está rodando em um container Docker e pronta para escalar!
Teste a API
Abra seu navegador ou use o Postman/curl:
http://localhost:8080/api/ask?question=Qual+a+diferença+entre+Java+e+JavaScript?
Você deverá receber uma resposta do Qwen, indicando que a integração está funcionando perfeitamente dentro do container.
Estrutura Recomendada do Projeto
Para facilitar a compreensão, aqui está como deve estar a estrutura do seu projeto após os passos acima:
meu-projeto/
│
├── src/
│ └── main/
│ ├── java/ # Código fonte Spring Boot
│ └── resources/ # application.properties, etc.
│
├── target/
│ └── qwen-springboot-api.jar # Gerado pelo mvn package
│
├── Dockerfile # Definição do container
├── pom.xml # Configuração do Maven
└── README.md # Opcional
Publicando a Imagem (Opcional)
Se quiser compartilhar sua imagem ou usá-la em outro servidor, você pode enviar para o Docker Hub:
- Faça login:
- Marque a imagem com seu nome de usuário:
- Envie a imagem:
docker login
docker tag qwen-springboot seu-usuario-docker/qwen-springboot
docker push seu-usuario-docker/qwen-springboot
Agora, qualquer pessoa pode usar sua imagem com:
docker pull seu-usuario-docker/qwen-springboot
Dicas Adicionais
- Use variáveis de ambiente para armazenar chaves sensíveis (como a do DashScope).
- Utilize
.env
+--env-file
nodocker run
para manter as credenciais fora do código. - Para ambientes de produção, considere usar
docker-compose.yml
ou orquestradores como Kubernetes.
Exemplo de docker-compose.yml
:
version: '3.8'
services:
qwen-app:
image: qwen-springboot
build: .
ports:
- "8080:8080"
environment:
- DASHSCOPE_API_KEY=SUA_API_KEY
restart: always
Benefícios de Usar Docker Nesse Caso
Vantagem | Descrição |
---|---|
🔄 Reprodutibilidade | Garante que a aplicação funcione igual em qualquer lugar |
🧼 Limpeza do Ambiente | Não polui o sistema com dependências locais |
🚀 Facilidade de Deploy | Basta rodar o container |
💡 Escalabilidade | Pode ser replicado facilmente em clusters |
🔐 Segurança | Containers são isolados |
Conclusão
Ao integrar o Qwen com Docker, você garante que sua aplicação Spring Boot possa ser implantada rapidamente em qualquer infraestrutura, sem preocupações com versões de bibliotecas ou sistemas operacionais diferentes.
Esse é um passo importante tanto para desenvolvedores individuais quanto para equipes de DevOps, especialmente se o objetivo for colocar modelos LLMs em produção de forma segura e controlada.
Quer Saber Mais?
Se precisar de ajuda para configurar um pipeline CI/CD com GitHub Actions ou automatizar builds no Docker Hub, é só me pedir!
📢 Gostou do conteúdo? Compartilhe com outros devs!
Tem dúvidas ou quer adaptar esse artigo para seu caso específico? Deixe nos comentários ou entre em contato!
Comentários