Docker: Node.js + PM2 — Cluster Mode

Raviel Chausse
3 min readSep 13, 2021
docker-nodejs-pm2

Bom dia / boa tarde / boa noite

Nesse passo a passo vamos provisionar o servidor web do NodeJs utilizando o PM2 para gerenciar e monitorar os recursos de nossa aplicação.

Mas o que é PM2?

PM2 é um gerenciador de processo daemon que o ajudará a gerenciar e manter seu aplicativo online 24 horas por dia, 7 dias por semana.

Direto ao ponto!

Para começarmos, vamos utilizar o artigo Docker: Node.js + MongoDB — Apenas um CRUD como base. Depois de clonar o projeto, vamos fazer alguns pequenos ajustes. Para instalar o PM2, vamos abrir o terminal e rodar e comando “npm i -g pm2”.

O primeiro ajuste é a criação do script que vai provisionar o nosso serviço com o PM2. Vamos substituir o valor da chave “start” no arquivo “package.json”:

package.json

Agora no terminal basta rodar o comando “npm start” e o serviço estará online como a imagem abaixo:

pm2 status

Docker + PM2

Vamos fazer alguns ajustes no dockerfile para que o nosso container também utilize o PM2 para provisionar o serviço.

Primeiramente vamos adicionar um arquivo chamado “pm2.json” que conterá os parâmetros para iniciar o serviço com PM2. Acesse o link para mais informações.

pm2.json

No dockerfile vamos instalar o modulo do PM2, vamos adicionar o arquivo “pm2.json” e vamos alterar o comando de inicialização.

dockerfile

Pronto!

Rodando o comando “docker-compose up -d” para levantar os containers, o nosso NodeJs vai estar rodando com a ajuda do PM2.

docker-compose up -d

No docker-desktop você conseguirá ver os logs do container e as mensagens de cada nó da aplicação!

Até a próxima pessoal!

GitHub

github.com/rchaussetech/docker-nodejs-pm2

--

--