Docker: Como Containerizar uma Aplicação Node.js ?

*Texto de Paulo Clemente
Desenvolvedor na Rocketseat

A containerização de aplicativos é uma técnica poderosa que permite isolar e empacotar aplicativos com todas as suas dependências em contêineres(containers). O Docker é uma das ferramentas mais populares para realizar essa tarefa, e vamos ter fornecer um guia onde você aprenderá como containerizar uma aplicação Node.js usando o Docker. Vamos explorar o processo passo a passo, desde os pré-requisitos até a execução da aplicação no Docker.

NLW Journey | Evento gratuito de programação na prática da Rocketseat
O Next Level Week é o maior evento gratuito de programação na prática da Rocketseat onde você desenvolve um projeto em 3 aulas para acelerar para o seu próximo nível.

Sem muita enrolação, vamos lá!

Pré-requisitos

Antes de mergulharmos na containerização, é importante garantir que você tenha algumas coisas em ordem:

  1. Docker Desktop: Certifique-se de ter a versão mais recente do Docker Desktop instalada em seu sistema. Você pode baixá-lo em Docker Desktop.
  2. Cliente Git: Os exemplos deste guia usam um cliente Git baseado em linha de comando. Certifique-se de ter um cliente Git instalado em seu sistema. Você pode usar qualquer cliente Git de sua preferência.

Tudo ok? Agora podemos começar.

Visão geral

Ao finalizar o guia você deve ser capaz de criar um contêiner para uma aplicação Node.js e executá-la dentro do Docker.

Não se assuste, vamos dividir o processo em etapas para torná-lo mais fácil de seguir.

Passo 1: Obtenha a amostra da aplicação

A primeira etapa é obter a aplicação de amostra. Vamos usar um exemplo que o próprio docker nos fornece.

Abra um terminal, vá para o diretório onde deseja trabalhar e execute o seguinte comando para clonar o repositório:

$ git clone <https://github.com/docker/docker-nodejs-sample>

Passo 2: Teste a aplicação sem o Docker (opcional)

Antes de prosseguir com a containerização, é uma boa prática testar a aplicação localmente sem o Docker. Para fazer isso, siga estas etapas:

  • Certifique-se de ter o Node.js 18 instalado em sua máquina. Você pode baixá-lo em Node.js.
  • Abra um terminal, vá para o diretório 'docker-nodejs-sample' e execute o seguinte comando para instalar as dependências:
$ npm install

  • Quando as dependências terminarem de instalar, execute o seguinte comando para iniciar a aplicação:
$ node src/index.js

  • Abra um navegador e acesse a aplicação em http://localhost:3000. Você deverá ver uma aplicação de lista de tarefas simples.
  • No terminal, pressione Ctrl+C para parar a aplicação.

Passo 3: Inicialize os recursos do Docker

Agora que você tem uma aplicação, podemos iniciar o processo de containerização. Dentro do diretório 'docker-nodejs-sample', execute o comando 'docker init' em um terminal e siga as instruções:

$ docker init

Isso criará os recursos necessários do Docker para containerizar sua aplicação. Responda às perguntas de acordo com o seu projeto.

Passo 4: Execute a aplicação

Dentro do diretório 'docker-nodejs-sample', execute o seguinte comando em um terminal:

NLW Journey | Evento gratuito de programação na prática da Rocketseat
O Next Level Week é o maior evento gratuito de programação na prática da Rocketseat onde você desenvolve um projeto em 3 aulas para acelerar para o seu próximo nível.
$ docker compose up --build

Passo 5: Execute a aplicação em segundo plano

Se desejar executar a aplicação em segundo plano, você pode fazê-lo adicionando a opção '-d'. Dentro do diretório 'docker-nodejs-sample', execute o seguinte comando em um terminal:

$ docker compose up --build -d

Para parar a aplicação em segundo plano, execute o seguinte comando:

$ docker compose down

Isso resume os passos para containerizar e executar uma aplicação Node.js com Docker. Com essa técnica, você pode empacotar suas aplicações de forma eficiente e garantir que funcionem consistentemente em qualquer ambiente.

A containerização com Docker oferece flexibilidade e escalabilidade, tornando-a uma escolha sólida para o gerenciamento de aplicativos.

Se você deseja saber mais sobre Docker e containerização, confira a documentação oficial em Docker Documentation.

A containerização de aplicativos Node.js com Docker é uma habilidade valiosa para qualquer desenvolvedor. Isso simplifica o processo de implantação e garante que suas aplicações funcionem sem problemas em vários ambientes. Siga este guia passo a passo e comece a containerizar suas próprias aplicações Node.js.