Ferramentas

Docker Para Desenvolvedores: Do Zero ao Deploy

Vinicius Farias13 min de leitura2918 visualizações
#Docker#DevOps#Deploy#Containers

Por Que Todo Dev Precisa de Docker


"Funciona na minha maquina" nao e mais desculpa. Docker garante que seu ambiente e identico em desenvolvimento, staging e producao.

Conceitos Fundamentais



  • Imagem: template read-only com tudo que sua app precisa

  • Container: instancia rodando de uma imagem

  • Dockerfile: receita para construir uma imagem

  • Docker Compose: orquestra multiplos containers

Seu Primeiro Dockerfile


Para uma aplicacao Node.js:


FROM node:20-alpine AS base

FROM base AS deps
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production

FROM base AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=deps /app/node_modules ./node_modules
COPY --from=build /app/dist ./dist
EXPOSE 3000
CMD ["node", "dist/server.js"]


Este Dockerfile multi-stage gera uma imagem otimizada com apenas o necessario para rodar.

Docker Compose Para Dev


Configure todo seu ambiente local com um arquivo:


services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
depends_on:
- db
- redis

db:
image: postgres:16-alpine
environment:
POSTGRES_DB: myapp
POSTGRES_PASSWORD: secret
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data

redis:
image: redis:7-alpine
ports:
- "6379:6379"

volumes:
pgdata:

Comandos Essenciais


# Subir tudo
docker compose up -d

Ver logs docker compose logs -f app

Entrar no container docker compose exec app sh

Parar tudo docker compose down

Deploy em Producao


Para deploy, recomendo:



  • Coolify: alternativa open-source ao Heroku, roda em qualquer VPS

  • Railway: deploy automatico a partir do Dockerfile

  • VPS + Docker Compose: para controle total

Dicas Importantes



  1. Sempre use .dockerignore para excluir node_modules e .git

  2. Use imagens Alpine — sao 5x menores

  3. Nunca rode containers como root em producao

  4. Use health checks para monitoramento automatico

Compartilhar este artigo: