🚀 Como Rodar uma API Node.js + PostgreSQL com Docker

Hoje, vou compartilhar um exemplo prático e direto para quem quer aprender Docker: subir uma API Node.js conectada ao PostgreSQL sem precisar instalar o banco localmente.

Se você já perdeu tempo configurando dependências no seu ambiente ou precisa gar…


This content originally appeared on DEV Community and was authored by Bruno Mestres

Hoje, vou compartilhar um exemplo prático e direto para quem quer aprender Docker: subir uma API Node.js conectada ao PostgreSQL sem precisar instalar o banco localmente.

Se você já perdeu tempo configurando dependências no seu ambiente ou precisa garantir que tudo funcione igual em qualquer máquina, Docker é a solução!

📌 Estruturando o Projeto
Criamos dois containers:
🔹 App Node.js para servir uma API
🔹 Banco PostgreSQL para armazenar os dados

📦 meu-projeto-docker
┣ 📂 src
┃ ┣ 📜 main.ts
┣ 📜 Dockerfile
┣ 📜 docker-compose.yml
┣ 📜 package.json

1️⃣ Criando a API Node.js
Dentro do projeto, inicialize o package.json:

npm init -y

Instale as dependências:

npm install express pg

Agora, crie src/main.ts:

import express from "express";
import pg from 'pg'
const { Pool } = pg
const app = express();

const pool = new Pool({
  user: "postgres",
  host: "db",
  database: "meubanco",
  password: "postgres",
  port: 5432,
});

app.get("/", async (req, res) => {
  const response = await pool.query("SELECT NOW()");

  res.send(`Banco conectado! Hora atual: ${response.rows[0].now}`);
});



app.listen(3000, () => console.log("API running on port 3000"));

2️⃣ Criando o Dockerfile

Esse arquivo define a imagem da nossa API:

Dockerfile

FROM node:23
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "src/main.ts"]

3️⃣ Configurando o Docker Compose

Aqui criamos os serviços da API e do PostgreSQL.

docker-compose.yml

version: "3.8"

services:
  db:
    image: postgres:15
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: meubanco
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data

  app:
    build: .
    restart: always
    depends_on:
      - db
    ports:
      - "3000:3000"
    volumes:
      - .:/app

volumes:
  pgdata:

4️⃣ Rodando o Projeto 🚀

Agora é só rodar:

docker compose up -d

E acessar a API em:
http://localhost:3000

Enfim, com Docker, garantimos que nosso ambiente seja consistente, evitando aqueles famosos "na minha máquina funciona".

Esse foi só o começo! Podemos evoluir esse setup com migrations, CI/CD e Kubernetes. Se quiser mais conteúdos como esse, comenta aí! 👇🔥


This content originally appeared on DEV Community and was authored by Bruno Mestres


Print Share Comment Cite Upload Translate Updates
APA

Bruno Mestres | Sciencx (2025-02-26T20:53:18+00:00) 🚀 Como Rodar uma API Node.js + PostgreSQL com Docker. Retrieved from https://www.scien.cx/2025/02/26/%f0%9f%9a%80-como-rodar-uma-api-node-js-postgresql-com-docker/

MLA
" » 🚀 Como Rodar uma API Node.js + PostgreSQL com Docker." Bruno Mestres | Sciencx - Wednesday February 26, 2025, https://www.scien.cx/2025/02/26/%f0%9f%9a%80-como-rodar-uma-api-node-js-postgresql-com-docker/
HARVARD
Bruno Mestres | Sciencx Wednesday February 26, 2025 » 🚀 Como Rodar uma API Node.js + PostgreSQL com Docker., viewed ,<https://www.scien.cx/2025/02/26/%f0%9f%9a%80-como-rodar-uma-api-node-js-postgresql-com-docker/>
VANCOUVER
Bruno Mestres | Sciencx - » 🚀 Como Rodar uma API Node.js + PostgreSQL com Docker. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/02/26/%f0%9f%9a%80-como-rodar-uma-api-node-js-postgresql-com-docker/
CHICAGO
" » 🚀 Como Rodar uma API Node.js + PostgreSQL com Docker." Bruno Mestres | Sciencx - Accessed . https://www.scien.cx/2025/02/26/%f0%9f%9a%80-como-rodar-uma-api-node-js-postgresql-com-docker/
IEEE
" » 🚀 Como Rodar uma API Node.js + PostgreSQL com Docker." Bruno Mestres | Sciencx [Online]. Available: https://www.scien.cx/2025/02/26/%f0%9f%9a%80-como-rodar-uma-api-node-js-postgresql-com-docker/. [Accessed: ]
rf:citation
» 🚀 Como Rodar uma API Node.js + PostgreSQL com Docker | Bruno Mestres | Sciencx | https://www.scien.cx/2025/02/26/%f0%9f%9a%80-como-rodar-uma-api-node-js-postgresql-com-docker/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.