Pular para conteúdo

Rollback

Rollback via Docker Swarm

O Docker Swarm mantém o historico de versoes do service. Para voltar a versao anterior:

docker service rollback <service_name>

Exemplos:

docker service rollback marie_ai_backend
docker service rollback marie_ai_frontend
docker service rollback webhook_whatsapp

Note

O rollback volta para a imagem anterior do service. So funciona se houve um docker service update previo.

Rollback para SHA Especifico

Se precisa voltar para uma versao especifica (pelo SHA do commit):

# 1. Pegar o SHA do commit desejado no GitHub
# 2. Pull e update
docker pull ghcr.io/the-cmos/marie_ai:<sha>
docker service update \
  --image ghcr.io/the-cmos/marie_ai:<sha> \
  --with-registry-auth \
  marie_ai_backend

Rollback via Git

Se o problema esta no codigo e precisa reverter o commit:

# Reverter o ultimo commit
git revert HEAD --no-edit
git push origin main

Isso cria um novo commit que desfaz as mudancas e dispara o CI/CD automaticamente.

Rollback de Stack (RabbitMQ, WhatsApp)

Para stacks manuais, nao ha rollback automatico. Edite o docker-compose.yml com a versao anterior e redeploy:

nano ~/stacks/whatsapp/docker-compose.yml
# Alterar a tag da imagem para a versao desejada
docker stack deploy -c ~/stacks/whatsapp/docker-compose.yml whatsapp

Verificar Versao Atual

# Ver qual imagem cada service esta usando
docker service inspect <service_name> --format '{{.Spec.TaskTemplate.ContainerSpec.Image}}'

Procedimento de Emergencia

Se um service esta crashando e precisa parar imediatamente:

# Escalar para 0 replicas (para o service sem remover)
docker service scale <service_name>=0

# Investigar logs
docker service logs <service_name> --tail 100

# Quando corrigido, escalar de volta
docker service scale <service_name>=1

Nunca remova o service

Prefira docker service scale X=0 em vez de docker service rm. Remover o service perde a configuracao (network, env-file, ports).