Construindo um ambiente Node.js com Docker

10
 min de leitura

Veja como criar um ambiente de desenvolvimento Node.js usando Docker, que é utilizado também em ambientes de produção.

Construindo um ambiente Node.js com Docker

Olá dev, como vai? Neste artigo pretendo mostrar como criar um ambiente de desenvolvimento que é utilizado também em ambientes de produção, usando containers e especialmente Docker. 

Esse artigo é um pouco mais prático, não se atentará a explicar como Docker funciona e o contexto dos containers e imagens. Não que não seja importante conhecer esses fundamentos, mas para começar a utilizá-lo não é necessário. No final deixei alguns links com vídeos e outros artigos, caso você queira aprender mais.

O que é Docker?

Docker é um gerenciador de containers criado por Solomon Hykes e que, na minha opinião, mudou a forma de desenvolver, sendo utilizado tanto no ambiente de desenvolvimento quanto de produção.

Depois que conheci, o Docker e resolvi aplica-lo no meu dia-dia, não o abandonei mais.Depois do ar condicionado, a melhor invenção do homem foi o Docker.

Você consegue criar um ambiente em poucos segundos e pode começar a desenvolver um sistema que será facilmente utilizado tanto no servidor quanto em outro computador.

Sim, aquela frase "no meu computador funciona" não será mais dita.

Pré-requisitos para usar o Docker

Antes de começarmos de fato a utilizar o Docker, alguns pré-requisitos precisam ser preenchidos. São eles:

1. Ter o Docker instalado em sua máquina. Caso não tenha, segue alguns links ensinando como instalar:

  • Como instalar Docker no Linux
  • Como instalar Docker no Windows

2. Ter o Node.js instalado em seu computador. Deixarei apenas o link de como instalar noLinux devido à facilidade de instalação no Windows.

  • Como instalar Node no Linux

1º Passo - Criar um projeto Node.js com NPM

Escolha um diretório de sua preferência e no terminal, digite o comando abaixo:

mkdir node_project

Navegue para esse diretório utilizando o comando abaixo:

cd node_project

Inicie um projeto node lembrando de colocar a tag "-y" no final para que não haja a necessidade de preenchimento dos campos:

npm init -y

2º Passo - Criando o arquivo do projeto e instalando Koa.js

O nosso app será bem básico, utilizando uma biblioteca conhecida no mundo JS chamada Koa.js. Essa lib surgiu de uma galera que se desvencilhou de um outro projeto, Express.Ela também é baseada em middlewares e facilita bastante a criação de um servidor HTTP com o Node.js. No final, deixarei alguns links falando mais sobre o Koa caso você tenha interesse em se aprofundar sobre essa biblioteca.

Bom, antes de criar o nosso arquivo, vamos instalar o Koa como dependência do nosso projeto para podermos utilizá-lo.

npm install koa

Além do Koa,vamos instalar o Nodemon como uma dependência de desenvolvimento, quenos permitirá atualizar a nossa aplicação e ver o efeito dessa atualização em tempo real.

npm install nodemon -D

Sem mais delongas, vamos criar o nosso app.js. (FINALMENTE!)

Para que consiga testar, basta digitar no diretório do arquivo o comando a seguir:

node app.js

Acesse o seu navegador preferido, digite "localhost:3000" e voilá ...

Temos um servidor rodando em nosso computador. Vamos agora para a última etapa e mais importante, colocar o servidor para rodar em um container Docker.

Último Passo - Criando uma imagem Docker e subindo um container com o nosso servidor

Agora que temos o projeto instalado, vamos criar um novo arquivo no nosso diretório chamado Dockerfile. Com ele será possível criar uma imagem e posteriormente, subir o container com a aplicação rodando via local host.

Uma dica importante, se você é como a maioria dos devs hoje em dia e utiliza o VS Code como ferramenta para desenvolver, instale a extensão do Docker para ter acesso a várias coisas legais como syntax highlighting.

Com o arquivo Dockerfile criado, digite a receita abaixo:

Pronto,vamos fazer mágica acontecer. Em seu terminal, no diretório do projeto, digite:

docker build . -t node-app

Aguarde alguns segundos, dependendo da velocidade da sua conexão, para que a imagem Node seja baixada e se a mensagem abaixo aparecer no seu terminal, está tudo ok para seguirmos adiante.

Com a imagem criada, vamos criar o nosso container e colocar ele para rodar.

docker run --name my-node -p3000:3000 -v "${PWD}:/home/node/app" node-app

Se não houve nenhum erro ao final do processo, acesse novamente o seu navegador preferido,digite "localhost:3000" e novamente... VOILÁ!

Pronto. Temos um servidor Node rodando em Docker. Viu como é fácil? Quer ver outra coisa sensacional?

Vá até o arquivo app.js no seu editor ou IDE preferido e mude o texto dentro da tag H1.

Acesse o navegador e atualize a página para ver a mágica acontecer.

Temos o nosso Node.js com Docker

Conseguimos realizar tal façanha utilizando um recurso do Docker que cria volumes e reflete toda alteração feita no arquivo que está na pasta automaticamente no containter.

Com mais algumas linhas de código, estudo sobre Docker, você será capaz de subir uma aplicação dessas em produção.

Espero que tenha gostado desse artigo prático e que tenha coçado o seu cerebelo para ir cada vez mais fundo nesse mundo Docker. Aproveito para sugerir outro artigo sensacional sobre um caso prático de API REST com Node. Vale a pena conferir!

Alguns links e vídeos úteis

Como prometido, segue links de outros materiais que irão te ajudar a seguir adiante:

Como criar um servidor HTTP com KoaJS: CollabCode

Como criar um servidor HTTP com KoaJS - Marco Bruno

Compartilhar esse conteúdo: