Tools
Tools: “Adeus ‘funciona na minha máquina’: Spring Boot com PostgreSQL usando Docker”
2026-01-16
0 views
admin
Introdução ## Tudo o que você precisa é Docker ou Podman. ## O problema clássico no desenvolvimento backend ## Exemplo prático: Spring Boot + PostgreSQL ## Dockerfile da aplicação Spring Boot ## docker-compose.yml ## Por que isso é tão poderoso? ## Conclusão Quando comecei a estudar containerização de aplicações Java, uma coisa ficou muito clara:
o maior ganho não é apenas empacotar aplicações, mas transformar o ambiente inteiro em código. Neste artigo, vou mostrar como dois arquivos são suficientes para subir uma aplicação Spring Boot + PostgreSQL, sem precisar instalar Java, banco de dados ou servidor de aplicação localmente. Quem trabalha com backend já enfrentou pelo menos um desses cenários: A containerização resolve exatamente isso:
o ambiente passa a ser reproduzível e versionável. O Dockerfile define como a aplicação Java será executada: O código está dizendo: Agora descrevemos toda a infraestrutura local: Nesse arquivo yml definimos: Subindo tudo com um único comando: E pronto:
✅ Spring Boot rodando
✅ PostgreSQL configurado
✅ Rede criada automaticamente
✅ Ambiente igual em qualquer máquina Porque muda completamente a forma de desenvolver software: Containerização não é só sobre Docker.
É sobre confiabilidade, portabilidade e padronização. Quando você percebe que um projeto inteiro pode ser descrito em arquivos, o desenvolvimento muda de nível. Esse modelo é a base para: E tudo começa com um Dockerfile e um docker-compose. Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse CODE_BLOCK:
FROM eclipse-temurin:17-jdk
WORKDIR /app
COPY target/app.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"] Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
FROM eclipse-temurin:17-jdk
WORKDIR /app
COPY target/app.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"] CODE_BLOCK:
FROM eclipse-temurin:17-jdk
WORKDIR /app
COPY target/app.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"] CODE_BLOCK:
version: "3.8" services: db: image: postgres:15 environment: POSTGRES_DB: appdb POSTGRES_USER: user POSTGRES_PASSWORD: pass ports: - "5432:5432" app: build: . ports: - "8080:8080" environment: SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/appdb SPRING_DATASOURCE_USERNAME: user SPRING_DATASOURCE_PASSWORD: pass depends_on: - db Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
version: "3.8" services: db: image: postgres:15 environment: POSTGRES_DB: appdb POSTGRES_USER: user POSTGRES_PASSWORD: pass ports: - "5432:5432" app: build: . ports: - "8080:8080" environment: SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/appdb SPRING_DATASOURCE_USERNAME: user SPRING_DATASOURCE_PASSWORD: pass depends_on: - db CODE_BLOCK:
version: "3.8" services: db: image: postgres:15 environment: POSTGRES_DB: appdb POSTGRES_USER: user POSTGRES_PASSWORD: pass ports: - "5432:5432" app: build: . ports: - "8080:8080" environment: SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/appdb SPRING_DATASOURCE_USERNAME: user SPRING_DATASOURCE_PASSWORD: pass depends_on: - db COMMAND_BLOCK:
docker compose up Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
docker compose up COMMAND_BLOCK:
docker compose up - “Funciona na minha máquina”
- Versões diferentes de Java entre ambientes
- Banco configurado manualmente
- Setup longo para novos membros do time - Qual versão do Java usar
- Onde a aplicação ficará dentro do container
- Como ela será iniciada - Um container para o PostgreSQL
- Um container para a aplicação Spring Boot
- Variáveis de ambiente
- Comunicação entre os serviços - Ambiente deixa de ser um problema
- Onboarding de novos desenvolvedores fica simples
- Pipelines de CI/CD ficam previsíveis
- Infraestrutura vira código versionável - Microsserviços
- Arquiteturas modernas em cloud
- Entrega contínua
how-totutorialguidedev.toaimlpostgresqldocker