Docker: Node.js + Express.js — Um “Olá Mundo!” muito simples

Raviel Chausse
4 min readAug 21, 2021
docker-nodejs-expressjs

Bom dia / boa tarde / boa noite

Nesse passo a passo vamos provisionar, de forma muito simples, um container NodeJs utilizando o ExpressJs para nos ajudar nessa tarefa. Mas o que é NodeJs e ExpressJs?

Node.js® é um runtime JavaScript desenvolvido com o Chrome’s V8 JavaScript engine. Como um ambiente de execução JavaScript assíncrono orientado a eventos, o Node.js é projetado para desenvolvimento de aplicações escaláveis de rede.
Express.js é um popular framework web estruturado, escrito em JavaScript que roda sobre o ambiente node.js em tempo de execução. Com ele é possível configurar o seu ambiente de desenvolvimento, executar tarefas comuns de desenvolvimento e implantação da web.

Pré-requisitos:

Docker Desktop: https://www.docker.com/products/docker-desktop
NodeJS: https://nodejs.org/pt-br/download/
Editor de Texto: Qualquer editor de texto de sua preferência.

Bora codar?

Primeiramente vamos criar um novo diretório para conter nossa aplicação.

Agora vamos abrir esse diretório no terminal. Eu vou utilizar o git-bash, mas pode ser utilizado qualquer terminal de sua preferência.

git-bash

No terminal, digite: npm init e diga o passo a passo de criação de um novo projeto npm.

npm init

Agora vamos instalar o nosso framework, o ExpressJs. Para isso basta digitar o comando: npm i express -S

npm i express -S

Neste ponto, o nosso diretório deverá estar assim:

Windows explore

Vamos abrir o nosso diretório no editor de texto e vamos criar um novo arquivo chamado index.js.

index.js

Vamos seguir o modelo de Single File Application e vamos definir tudo que é necessário para o nosso “Olá Mundo!” dentro de um único arquivo.

Single File Application

E agora?

Agora vamos criar um script para facilitar nossa vida e vamos utilizar o nodemon para executar nossa aplicação.

Nodemon é uma ferramenta que ajuda a desenvolver aplicativos baseados em node.js, reiniciando automaticamente o aplicativo de nodejs quando mudanças de arquivo no diretório são detectadas.

No arquivo package.json, na chave scripts, vamos adicionar uma nova chave/valor: “start”: “npx nodemon index”

package.json

Novamente abrindo qualquer terminal, execute o comando: npm start e pronto. Sua aplicação estará disponível na porta 3000.

Terminal do VSCode

Abra o link localhost:3000 e veja:

Navegador

Mas e o Docker?

Vamos criar um arquivo dockerfile e vamos utilizar a imagem oficial do node a node:14.17.5-buster-slim. No dia que estou escrevendo esse artigo, essa é a versão LTS do NodeJS. Abaixo vemos o nosso arquivo dockerfile:

dockerfile

Para ajudar a fazer o build da nossa imagem docker e provisionar o nosso container, vamos criar um arquivo auxiliar de scripts (sh).

mynodejs.sh

É possível criar um .bat (cmd e powershell) se preferir.

mynodejs.bat

Execute o arquivo como preferir, a primeira vez que for executado, os dois primeiro comando do arquivo não serão executados com sucesso por ainda não existir a imagem e o container. Vai demorar um pouquinho para baixar as imagens e fazer o cache.

git-bash (mynodejs.sh)

A partir da segunda vez, o docker é capaz de encontrar os pontos de alteração e reconstruir as camadas caso necessário. Pronto, sua imagem docker foi criada e seu container está provisionado com sucesso!

docker-desktop

Até a próxima!

GitHub

github.com/rchaussetech/docker-nodejs-expressjs

--

--