Projeto de exemplo de uma API Node.js (TypeScript) conectada a um banco de dados PostgreSQL, ambos rodando em contêineres Docker.
- Node.js + Express + TypeScript
- PostgreSQL
- Docker + Docker Compose
- Docker Desktop (que inclui
dockeredocker-compose).
Não é preciso instalar npm localmente. O Docker cuida de tudo.
Na raiz do projeto, crie um arquivo chamado .env com o seguinte conteúdo:
# App
PORT=3000
# Database
DB_USER=postgres
DB_PASSWORD=challengepwd
DB_NAME=challenge_db
DB_PORT=5432
DB_HOST=dbNo seu terminal, na raiz do projeto, rode:
docker-compose up --build -d--build: Constrói a imagem da API (só é necessário na primeira vez ou se mudar o código).-d: Roda em segundo plano.
O Docker irá baixar o Postgres, construir a API (instalando as dependências npm dentro do contêiner) e iniciar os dois serviços.
Após os contêineres iniciarem, acesse este endpoint no seu navegador ou terminal:
curl http://localhost:3000/api/produtosResultado Esperado (JSON):
[
{
"id": 1,
"nome": "Laptop",
"preco": "3500.00"
},
{
"id": 2,
"nome": "Mouse",
"preco": "150.50"
},
{
"id": 3,
"nome": "Teclado",
"preco": "299.90"
}
]Para parar todos os contêineres:
docker-compose downPara parar e deletar os dados do banco (para recomeçar do zero):
docker-compose down -vFeito com ❤️ por Bernardo Esbérard