runner rollback
Volta uma instância da aplicação para uma versão anterior que ainda está guardada no servidor.
Sintaxe
runner rollback <app> [-v <versão>] [-i <instância>]Parâmetros
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
<app> |
Sim | Nome do registro (slug), projeto/sistema ou caminho da app |
-v, --version |
Não | Versão de destino. Sem ela, volta para a versão anterior à atual |
-i, --instance |
Não | Instância a reverter. Sem ela, usa a instância do registro (v2.151.0+) |
Qual instância é revertida (v2.151.0+)
Sem -i, o rollback resolve a instância na mesma ordem do deploy:
- a instância com que a app foi registrada (
runner add --instance <N>); - a instância default do manifesto;
production.
Antes da v2.151.0, o rollback usava sempre production. Uma app registrada em staging ou homolog falhava com Instance 'production' not found. Se a pasta tivesse também a instância production, o rollback revertia a instância errada.
Exemplos
# Volta a instância do registro para a versão anterior
runner rollback meu-app
# Volta para uma versão específica
runner rollback meu-app -v v1.2.3
# Instância explícita
runner rollback meu-app -i stagingO que o rollback faz
- Escolhe a versão de destino: a pedida em
-vou a anterior à atual. - Sobe o container da versão de destino e espera ficar saudável (até 120 s).
- Atualiza o roteamento do Traefik para a versão de destino.
- Grava o estado (v2.151.4+): o
current_versionda app passa a ser a versão de destino, e orunner logs historyganha uma entradaROLLBACK. - Emite o evento
RollbackSuccessnos canais de notificação.
O container da versão revertida fica parado no servidor. Desde a v2.151.5, status, instances, list, snapshot e health mostram o container que está rodando, não o parado.
Rollback e o cron
O cron (runner fetch --deploy) não desfaz o rollback. Ele compara o commit remoto com o último commit já tratado. O commit revertido continua contando como tratado, então o cron só volta a fazer deploy quando chega um commit novo na branch.
Para impedir até isso enquanto investiga, pause a app antes do rollback. O rollback mantém a pausa do operador:
runner pause meu-app
runner rollback meu-app
# ... investigação e correção ...
runner unpause meu-appErros comuns
| Mensagem | Causa |
|---|---|
Sem versão para onde voltar |
Só existe a versão atual guardada (keep_versions no manifesto) |
rollback_para_versao_no_ar |
-v pediu a versão que já está no ar. Nada é parado (v2.158.0+). Para recriar o container: runner deploy <app> --force |
Instance '<nome>' not found |
A instância pedida em -i não existe no manifesto |
O comando sai com código diferente de 0 em qualquer falha, e a causa vai para o stderr.
Listando versões
runner versions meu-appSem -i, mostra as versões da instância do registro (v2.151.2+).
Veja também
- Reverter para versão anterior — o playbook completo
- Pause/unpause