Hospedei um projeto web em Java de forma gratuita
Fala aí, honorável pessoa que veio ler esse texto! Turu bom? Bem, como o nome do post já sugere, aqui eu vou contar o passo a passo que segui para fazer o deploy de uma aplicação web escrita em Java gratuitamente. Mas antes de tudo, quero deixar bem claro que essa hospedagem serve para fins de estudo, você não vai manter isso como ambiente produtivo. Dito isso, vamos lá!
Jeff, onde foi feito esse deploy?
Eu usei a plataforma Render pra realizar a hospedagem. Entrando no site você vai perceber que não existe uma hospedagem direta de projetos Java, porém o Render permite publicações de imagens Docker também. Então segura o tcham, que eu vou explicar como fiz!
Passo 1 - Tenha uma aplicação web pronta
Minha primeira missão foi criar uma aplicação web usando Spring Boot. Nesse post não vou entrar no detalhe de como fazer isso, mas se você quiser saber é só dar uma lida nesse post onde eu explico como fiz a minha aplicação. Sendo assim, uma vez que você tenha a aplicação pronta e funcionando de boas na sua máquina, o próximo passo é gerar um arquivo executável JAR.
O caso é que em Java você pode usar tanto o Maven quanto o Gradle como ferramenta de automação das compilações de projeto web. E cada um deles tem uma forma diferente de gerar o arquivo JAR. Portanto, você deve entrar no Terminal/CMD e rodar o comando que for mais adequado na pasta raiz do projeto:
- Se estiver usando Maven, faça: mvn clean package
- Se estiver usando Gradle, faça: gradle build
Obs: dá uma olhada na documentação deles, caso tenha alguma dúvida (ou comenta aí embaixo que eu tento ajudar😉).
No meu caso, eu usei o Maven, então meu arquivo JAR foi criado dentro da pasta /target. Mas se você estiver usando Gradle, normalmente ele cria nesse caminho: /build/libs.
Antes de seguir para o próximo passo, é bom dar uma testada no executável através de um dos comandos abaixo:
Para Maven: java -jar target/nomedoprojeto-0.0.1-SNAPSHOT.jar
Para Gradle: java -jar build/libs/nomedoprojeto-0.0.1-SNAPSHOT.jar
Passo 2 - Crie uma imagem Docker
Pra fazer isso, obviamente você precisa ter o Docker instalado, então clica aqui e segue o rolê da instalação, caso você ainda não tenha. Feito isso, primeiro a gente cria um Dockerfile na raiz do projeto. Como estou usando o Java 21, o meu ficou assim:
FROM eclipse-temurin:21-jdk-alpine
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]Tendo o Dockerfile configurado certinho, a próxima etapa foi criar a imagem Docker propriamente dita. Perceba que, ao instalar o Docker, nós também instalamos uma ferramenta chamada Docker Desktop, que nos proporciona uma visão legal das imagens que nós formos criando.
Enfim, para criar a imagem eu rodei no Terminal/CMD o comando: docker build -t desafios-starcode . , já que o nome do meu projeto era desafios-starcode. (Obs: note que o último caractere do comando é um ponto).
Se tudo tiver dado certo, ao acessar a aba Images do Docker Desktop você vai ver sua imagem bonitona lá:
Passo 3 - Suba a imagem para o Docker Hub
Caso você não seja familiarizado com Docker, saiba que existe esse site chamado Docker Hub onde podemos criar uma conta e publicar imagens Docker. Além disso, também é possível baixar imagens de lá para utilizarmos nos nossos projetos. É uma parada bem prática!
Para hospedar a aplicação web, eu me cadastrei no Docker Hub e criei um repositório:
Criado o repositório, ele apareceu assim na minha lista:Aí beleza! Com o repositório no Docker Hub preparado, agora vamos para o Terminal/CMD outra vez! Primeiro precisamos conectar na conta do Docker Hub através do terminal (isso é parecido com fazer push da sua máquina para o GitHub, caso você saiba do que estou falando).
Para efetuar o login, rode o comando abaixo alterando para o seu nome de usuário:
docker login -u SEU-USER-DOCKER-HUB-AQUI
Depois disso, precisamos gerar uma tag através do comando abaixo, senão vai dar ruim quando nós fizermos o push:
docker tag nome-do-projeto SEU-USER-DOCKER-HUB-AQUI/nome-do-projeto
E, por fim, bora rodar o push propriamente dito:
docker push SEU-USER-DOCKER-HUB-AQUI/nome-do-projeto
Caso você tenha feito tudo certinho e não brotar nenhum erro no Terminal/CMD, ao entrar de novo no Docker Hub você vai ver os dados da imagem dentro do repositório que antes estava vazio!
Passo 4 - Faça o deploy no Render
Calma, honorável amiga (ou amigo)! Chegamos à última etapa desse tutorial! Agora é só conectar o Render com o nosso projeto web que está no repositório do Docker Hub. Claro, é necessário ter uma conta no Render, então crie uma se você não possuir ainda. Depois disso, lá no Render vá em + Add New e selecione Web Service.
Agora vá na última opção (Existing Image) e coloque seu usuário Docker Hub seguido do nome do projeto, tal como eu fiz na imagem abaixo:
Clicando agora em Connect, na próxima página escolha a opção Free, avance e espere a mágica acontecer!
Clicando no nome do serviço você consegue acessar essa telinha abaixo, onde mostra exatamente o link para o projeto que está no ar:
Entrando no link, você consegue acessar o projeto web feito em Java enfim publicado (ele demora um pouco pra carregar, isso é normal, tenha paciência, inclusive é por isso que eu frisei não ser possível usar o Render Free como ambiente produtivo):
Por fim, a conclusão
Eu fiquei bastante satisfeito com a possibilidade de subir projetos gratuitamente na plataforma do Render, pois muitas vezes nós queremos ter uma maneira de publicar mocks, rascunhos etc. E com isso apresentar para clientes uma ideia inicial de algum projeto. Nisso o Render é uma mão na roda!
Para finalizar, eu gostaria de agradecer ao mestre Kaur Kadak que disponibilizou no blog dele o post original que eu me baseei para realizar esse deploy dos exemplos acima. Você pode acessar o post original dele clicando aqui. Também agradeço a você que acompanhou esse texto até aqui! Valeu mesmo! Qualquer dificuldade, deixa aí um comentário! Té mais!
Comentários
Postar um comentário