Projeto de API REST desenvolvido com Spring Boot e configurada para rodar em containers Docker utilizando docker-compose.
- Java 21
- Spring Boot
- MySQL 8.0
- Docker & Docker Compose
Certifique-se de que o projeto foi compilado e que o .jar está presente na pasta target/.
./mvnw clean package -DskipTests
Isso gerará um arquivo
.jardentro da pastatarget/, que será utilizado pelo Docker.
Execute o comando abaixo na raiz do projeto (onde estão o Dockerfile e o docker-compose.yml):
docker-compose up --build
Esse comando fará o seguinte:
- Criará e iniciará um container MySQL (porta 3306).
- Criará e iniciará o container da aplicação Spring Boot (porta 8080), após o banco estar pronto.
Após a execução bem-sucedida, a API estará acessível em:
http://localhost:8080/swagger-ui/index.html
A aplicação está configurada para utilizar as seguintes variáveis de ambiente:
| Variável | Valor |
|---|---|
DATASOURCE_URL |
jdbc:mysql://db:3306/rest_with_spring_boot?... |
DATASOURCE_USERNAME |
admin |
DATASOURCE_PASSWORD |
admin |
DATASOURCE_DBCREATE |
update |
Essas variáveis são passadas automaticamente via
docker-compose.yml.
Para parar e remover os containers, utilize:
docker-compose down
O Dockerfile utilizado é simples e eficiente:
FROM openjdk:21
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]Ele copia o .jar gerado para dentro da imagem e executa o Spring Boot diretamente com java -jar.