Article image

CA

Claudio Andrade21/07/2024 19:10
Compartilhe

Dockerizando sua aplicação Spring Boot

  • #Spring
  • #Docker
  • #Java

Dockerizando a sua aplicação Spring Boot.


Neste artigo, vou mostrar de forma breve como colocar sua aplicação Spring Boot em Containers através do Docker. Passos semelhantes também se aplicam para o Podman.


1 - Instale o Docker e o Docker Compose no seu sistema operacional. Você pode encontrar as instruções de instalação em https://docs.docker.com/install/;

2 - Crie um arquivo Dockerfile na raiz do projeto, com o seguinte conteúdo:

FROM openjdk:17-jdk-alpine
ARG JAR_NAME=app.jar
COPY ${JAR_NAME} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

3 – Construa a imagem Docker usando o seguinte comando:

docker bulid -t nome-da-aplicacao .

4 – Caso sua aplicação não tenha Banco de Dados, é possível criar um arquivo chamado docker-compose.yml na raiz do projeto, com o seguinte conteúdo:

version: "3"
services:
app:
  build: .
  ports:
    - "8080:8080"
  exposure:
    publish_all_ports: true

5 – Para iniciar o serviço Docker use o seguinte comando:

docker compose up



6 – Através do Web Browser, verifique o funcionamento do aplicativo em http://localhost:8080


7 – Caso sua aplicação precise de um Banco de Dados para garantir a persistência, será necessário modificar o docker-compose.yml para que isto ocorra de maneira mais automatizada. Abaixo segue os comandos no arquivo:


version: "3"

services:

app:

build: .

environment:

SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3306/nome_do_banco?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=UTC

SPRING_DATASOURCE_USERNAME=root

SPRING_DATASOURCE_PASSWORD=senha_de_acesso

ports:

- "8080:8080"

exposure:

publish_all_ports: true

mysql:

image: minha-aplicacao_mysql

environment:

MYSQL_ROOT_PASSWORD=senha_de_acesso

volumes:

- my-sql-data:/var/lib/mysql

ports:

- "3306:3306"

networks:

default:

external:

name: minha-redes-externas


8 – Com o arquivo refeito, use novamente o comando docker-compose up para o funcionamento das novas funcionalidades.


Recentemente, fiz uma aplicação Spring Boot REST API que funciona na nuvem através do Railway. Este tipo de aplicação, usa as vantagens dos Containers em cloud. Caso queira verificar o Dockerfile e o Docker compose, acesse o meu github para exemplificar este conteúdo.


Git Hub: https://github.com/claudio-es-andrade/gameShopDTO/Dockerfile

https://github.com/claudio-es-andrade/gameShopDTO/Docker-compose.yml


Bons Estudos, Boas Práticas,

Claudio


Compartilhe
Comentários (0)