Software Docker: Dockerizando uma api em Node JS
Sumário
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
Este artigo 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:
O primeiro passo é criar um arquivo de nome “Dockerfile” na pasta raiz do seu projeto e inserir o seguinte conteúdo:
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 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 para o 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.
Desenvolvimento de Software
Confira outros artigos
![](/_next/image?url=https%3A%2F%2Fwww.cms.dtidigital.com.br%2Fwp-content%2Fuploads%2F2024%2F07%2Fmecanismos-de-acompanhamento.webp&w=1024&q=75)
Mecanismos de Acompanhamento no Desenvolvimento de Software
O uso de mecanismos de acompanhamento é imprescindível no mundo do desenvolvimento de software e pode potencializar a eficiência digital. O acompanhamento efetivo das operações é fundamental para garantir a entrega de soluções digitais de sucesso. Na nossa empresa, utilizamos uma metodologia única, o dti evolve, que incorpora inteligência artificial (IA) para acelerar nosso processo de […]
Desenvolvimento de Software
![Fundo de código com celular apresentando eficiência digital com copilot](/_next/image?url=https%3A%2F%2Fwww.cms.dtidigital.com.br%2Fwp-content%2Fuploads%2F2024%2F07%2FGitHub-copilot-eficiencia-dti.webp&w=1024&q=75)
Eficiência digital com copilot: um caso de uso do GitHub
Em um mundo em constante evolução tecnológica, otimizar o tempo e potencializar a eficiência digital se torna cada vez mais crucial. Portanto, vamos apresentar alguns experimentos que estão sendo implementados com o Git Hub Copilot em busca de maior eficiência digital. Certamente quem nos acompanha sabe que estamos experimentando e introduzindo as melhores ferramentas de […]
Desenvolvimento de Software
![Engenharia de Prompt - Como conversar com Ia](/_next/image?url=https%3A%2F%2Fwww.cms.dtidigital.com.br%2Fwp-content%2Fuploads%2F2024%2F07%2FShutterstock_2422157137-1.png&w=1024&q=75)
Engenharia de Prompt: A Arte de Conversar com a IA
Sumário1 Falando a Linguagem das Máquinas2 O que é Engenharia de Prompt?3 A Importância da Engenharia de Prompt em Ação: Aplicações do Mundo Real 4 Princípios-chave da Engenharia de Prompt Eficaz4.1 Desconstruindo o Prompt:4.2 Técnicas de Engenharia de Prompt:4.3 Combinando Técnicas e Criando sua Obra-Prima:5 As Armadilhas da Engenharia de Prompt: Navegando pelos Limites dos Modelos […]
Desenvolvimento de Software