Docker: Node.js + PM2 — Cluster Mode
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”:
Agora no terminal basta rodar o comando “npm start” e o serviço estará online como a imagem abaixo:
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.
No dockerfile vamos instalar o modulo do PM2, vamos adicionar o arquivo “pm2.json” e vamos alterar o comando de inicialização.
Pronto!
Rodando o comando “docker-compose up -d” para levantar os containers, o nosso NodeJs vai estar rodando com a ajuda do PM2.
No docker-desktop você conseguirá ver os logs do container e as mensagens de cada nó da aplicação!
Até a próxima pessoal!