Software Docker: Dockerizando uma api em Node JS

Por Victor Rosa|
Atualizado: Jul 2023 |
Publicado: Fev 2021

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! 

Quer ver mais conteúdos como esse?

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.

Quer saber mais?

Desenvolvimento de Software

Confira outros artigos

WhatsApp Business na sua estratégia: muito além de um chatbot

Podemos dizer adeus a conversas monótonas com chatbots limitados e sem personalidade. Daqui em diante, veremos interfaces conversacionais oferecendo experiências digitais cada vez mais sofisticadas. Em outro artigo, abordamos como mais experiências estão sendo convertidas, progressivamente, em conversas e como essa tendência é potencializada pelos avanços nos modelos de Inteligência Artificial e nos canais de […]

Desenvolvimento de Software

inteligencia-artificial-ia-como-otimizacao-para-grandes-empresas

A Inteligência Artificial (IA) e otimização operacional nas empresas

Sumário1 Como a Inteligência Artificial (IA) pode otimizar operações empresariais e aumentar a eficiência? Descubra aqui!  2 Automatização de tarefas repetitivas e demoradas 2.1 Exemplos de IA para economia de tempo2.2 10 exemplos de como utilizar a Inteligência Artificial (IA) para automatizar tarefas repetitivas e/ou demoradas: 3 Melhoria da eficiência e redução de custos com Inteligência Artificial (IA)3.1 […]

Desenvolvimento de Software

Desenvolvimento Android e iOS

Desenvolvimento Android x iOS: 10 recomendações para o desenvolvimento produtivo

Entre agosto de 2022 e junho de 2023, o mercado de aplicativos móveis experimentou um crescimento notável, projetando um aumento anual de 13,4% até 2030, alcançando um mercado estimado em US$ 187,58 bilhões. E, certamente, a tendência é que essa expansão continue exponencialmente nos próximos anos.  Portanto, agora é a hora de explorar as oportunidades […]

Desenvolvimento de Software

Veja outros artigos de Desenvolvimento de Software