wils@web ~ $ cat ~/ajuda/como-realizar-o-deploy-de-aplicacoes-node-js-com-pm2-e-docker-23-0.md

Desenvolvimento

Como realizar o deploy de aplicações Node.js com PM2 e Docker 23.0

atualizado em 02/08/2026

Este manual apresenta um guia passo a passo sobre como realizar o deploy de aplicações Node.js utilizando PM2 e Docker 23.0.

Introdução

O PM2 é um gerenciador de processos para aplicações Node.js que facilita a execução, monitoramento e manutenção de aplicações em produção. O Docker, por sua vez, é uma plataforma que permite criar, implantar e executar aplicações em contêineres. Juntos, eles proporcionam uma solução robusta para o deploy de aplicações.

Pré-requisitos

  • Node.js instalado
  • Docker instalado
  • PM2 instalado globalmente

Passo a Passo

1. Criar a Aplicação Node.js

mkdir minha-aplicacao
cd minha-aplicacao
npm init -y
npm install express

2. Criar o Arquivo da Aplicação

touch app.js
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(PORT, () => {
    console.log(`Servidor rodando na porta ${PORT}`);
});

3. Criar o Dockerfile

touch Dockerfile
FROM node:18
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD [ "node", "app.js" ]

4. Criar o arquivo .dockerignore

touch .dockerignore
node_modules
npm-debug.log

5. Construir a Imagem Docker

docker build -t minha-aplicacao .

6. Executar o Contêiner Docker

docker run -d -p 3000:3000 minha-aplicacao

7. Instalar e Configurar o PM2

npm install -g pm2
pm2 start app.js --name minha-aplicacao

Conclusão

Agora sua aplicação Node.js está rodando em um contêiner Docker e gerenciada pelo PM2. Para monitorar a aplicação, utilize:

pm2 monit

Dica: Utilize o comando pm2 save para salvar a configuração do PM2 e reiniciar automaticamente após reinicializações do sistema.

Precisa de ajuda com isso no seu servidor? A gente resolve pra você.

falar no WhatsApp

// deu erro ou não funcionou?

Achou algo errado neste manual?

Conta pra gente o que deu errado ou qual erro apareceu — a gente corrige. Se quiser retorno, deixe seu contato.