Pular para conteúdo

Runbook — Containers (CrashLoop, Down, OOMKilled, CPUThrottling)

Severidade: P0/P1 · Impacto: serviço do container indisponível ou degradado.

Verificação

  1. Dashboard Infrastructure / Containers e docker ps -a na VM.
  2. Logs do container: docker logs --tail 200 <nome>.
  3. Motivo do último exit: docker inspect <nome> --format '{{.State.ExitCode}} {{.State.OOMKilled}} {{.State.Error}}'.

Causas prováveis

  • Crash loop: erro fatal de configuração/secret/volume após deploy; dependência indisponível na inicialização.
  • Down: parada manual não revertida; restart: unless-stopped após stop explícito não volta sozinho.
  • OOMKilled: limite de memória baixo ou leak.
  • Throttling: limite de CPU baixo para a carga.

Ação

  1. Crash loop: ler o erro nos logs; se veio de deploy recente, reverter para a imagem anterior (docker compose up -d com a tag anterior).
  2. Down: docker compose up -d no diretório do serviço em /opt/pagesaude/services/....
  3. OOM/throttling: ajustar deploy.resources.limits no compose do serviço no repositório (não direto na VM) e reprovisionar.

Escalonamento

Se o container é o Traefik ou o Postgres e não sobe em 10 min, tratar como incidente P0 de plataforma.