docker
Share on facebook
Share on twitter
Share on linkedin

Software Docker: Dockerizando uma api em Node JS

Subindo sua aplicação com um comando 

Se você já desenvolveu alguma API com NodeJS e sempre teve a curiosidade de como fazer para que ela rodasse dentro de um contêiner do Docker, veio ao lugar certo! Este post não vai entrar em detalhes sobre o Docker e sua arquitetura, nem como desenvolver uma API com o Node. Este é um approach prático para colocar sua aplicação rodando sem enrolação! 

Mão na massa
 

Estartigo assume que você já tenha uma aplicação em node que queira rodar em um container, mas, caso não tenha, segue abaixo um exemplo:  

Dockerizando uma api em Node JS

O primeiro passo é criar um arquivo de nome “Dockerfile” na pasta raiz do seu projeto e inserir o seguinte conteúdo: 

Dockerizando uma api em Node JS

Explicando o arquivo 

  • O comando FROM diz qual imagem servirá de referência para a sua aplicação. Nesse caso, a versão é a lts”, do node. 
  • O comando WORKDIR diz qual será a pasta dentro do container, onde seu código vai ficar. 
  • O comando COPY será usado para copiar o package.json da pasta raiz para a pasta do projeto dentro do container.
  • O comando RUN vai rodar o comando npm install dentro do container. 
  • O comando COPY terá a função de copiar todos os arquivos de dependências agora instalados para dentro da pasta do projeto no container. 
  •  O comando EXPOSE vai mapear a porta da sua aplicação para a máquina externa. 
  •  O comando CMD vai rodar o comando node src/server.js para que a  aplicação comece a rodar imediatamente. 

Fazendo o BUILD da imagem
 

Dentro da pasta na qual você salvou o arquivo, rode o comando docker build -t seunome/nomedoseuapp .. Depois disso, a imagem estará registrada no Docker da sua máquina. 

Rodando sua API 

Agora, basta colocar a imagem para rodar com o comando docker run -p 8080:8080 -d seunome/nomedoseuapp. 

Esse comando diz para o software rodar a imagem que você criou previamente, mapeando as portas do container paro PC local com o atributo “-p”, sendo o primeiro argumento a porta do pc local, e o segundo, a porta dentro do container (8080:8080). O argumento “-d” diz para o software rodar seu container em background, para que a janela do terminal não trave no processo. 

Comandos úteis

Listar os containeres que estão rodando 

docker ps 

Mostrar o log da aplicação 

docker logs seunome/nomedoseuapp 

Parar o container 

docker stop seunome/nomedoseuapp 

Reiniciar o container 

docker restart seunome/nomedoseuapp 

Iniciar o container (caso esteja desligado) 

docker start seunome/nomedoseuapp 

Listar imagens 

docker images 

Remover imagens 

docker images rm nomedaimagem 

Listar containeres 

docker container ls 

Remover containeres 

docker rm nomedoconteiner 

Pronto! Com tudo funcionando, você já pode testar a sua API no http://localhost:8080 (sua porta de escolha) da mesma forma como faria se ela estivesse rodando dentro da pasta pelo terminal. 

Gostou do conteúdo? Em nosso podcast Entre Chaves ou em nosso blog, você confere de perto mais dicas e insights como esse.

Tá na dúvida?

contato@dtidigital.com.br

R. Antônio de Albuquerque, 330 – 14° andar
Savassi, Belo Horizonte – MG, 30112-010