Criando um Dockerfile para Node.js

O Docker mudou a forma como distribuímos software. Hoje, veremos como preparar uma imagem enxuta (Alpine) para uma aplicação Node.js.

O Dockerfile Otimizado

FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY package*.json ./
RUN npm ci --only=production
EXPOSE 3000
CMD ["node", "dist/main.js"]

Por que esse modelo?

Este Dockerfile usa a abordagem de Multi-stage Build. A primeira etapa tem todas as ferramentas necessárias para compilar o TypeScript. A segunda etapa recebe apenas o código final e dependências de produção, reduzindo o tamanho da imagem de 1GB para meros 150MB.

Pronto! Agora você pode rodar `docker build -t meu-app .` e enviar sua imagem para ser orquestrada em nossos servidores Cloud PaaS.