Visão Geral
O AppointmentScheduling-Backend é um serviço HTTP de agendamento de consultas, desenvolvido em Java 21 com Spring Boot, que expõe uma API para operações CRUD em agendamentos, usuários e disponibilidade. Adota autenticação estateless via JWT, persistência de dados com PostgreSQL e é containerizado com Docker para facilitar build e deploy
version: '3.8'
services:
db:
image: postgres:13
container_name: appointmentSchedulingDB
environment:
POSTGRES_DB: appointmentScheduling
POSTGRES_USER: example_user # usuário de exemplo
POSTGRES_PASSWORD: example_password # senha de exemplo
volumes:
- postgres-data:/var/lib/postgresql/data
ports:
- "5432:5432"
app:
build:
context: .
dockerfile: Dockerfile
image: appointment-backend
container_name: appointmentSchedulingApp
depends_on:
- db
ports:
- "8080:8080"
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/appointmentScheduling
SPRING_DATASOURCE_USERNAME: example_user
SPRING_DATASOURCE_PASSWORD: example_password
JWT_SECRET: example_jwt_secret
volumes:
postgres-data:-
Crie um arquivo
.envna raiz do projetoPOSTGRES_PASSWORD=example_password SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/appointmentScheduling SPRING_DATASOURCE_USERNAME=example_user SPRING_DATASOURCE_PASSWORD=example_password JWT_SECRET=example_jwt_secret
Adicione
.envao seu.gitignore:.env -
Construa a imagem da aplicação
-
Usando Docker diretamente:
docker build -t appointment-backend . -
Ou via Docker Compose:
docker-compose build app
-
-
Suba os containers em background
docker-compose up -d
-dinicia em background, mantendo o terminal livre.
-
Verifique se está tudo rodando
docker ps
Você deve ver dois containers ativos:
appointmentSchedulingDBeappointmentSchedulingApp. -
Para parar e remover containers, redes e volumes
docker-compose down