`runner restart`

Recycle do container que está atualmente servindo uma app, sem ir pelo pipeline de deploy completo. Útil para:

  • Pegar mudanças de variáveis de ambiente após runner env set
  • Destravar um processo preso (loop, deadlock, file descriptor leak)
  • Reciclar conexões persistentes (DB pool, websockets, etc.)

Disponível desde v2.22.9.

Sintaxe

runner restart <app> [-i instance] [--timeout N] [--json]
Flag Default Descrição
-i, --instance production Instance a reiniciar
--timeout 10 Stop timeout em segundos antes do SIGKILL
--json false Output em JSON

Como resolve o container

O runner localiza o container alvo a partir do state file:

state[app].current_version  →  {project_und}_{instance}_{version_und}

Exemplo: app runner-wizard-mcp, instance production, versão v0.1.1:

runner_wizard_mcp_production_v0-1-1

Faz docker stop (com timeout) + docker start. Não toca em volumes, networks, nem na imagem — apenas recicla o processo.

Exemplos

# Restart padrão (instance=production, timeout=10s)
runner restart meu-app

# Restart de instance específica
runner restart meu-app -i staging

# Timeout maior pra apps com graceful shutdown lento
runner restart meu-app --timeout 30

# JSON pra orquestrador/CCS
runner restart meu-app --json

Output JSON

{
  "action": "restart",
  "app": "meu-app",
  "instance": "production",
  "version": "v1.2.3",
  "container": "meu_app_production_v1-2-3",
  "success": true,
  "stop_error": null,
  "start_error": null,
  "timestamp": "2026-05-15T..."
}

Erros comuns

Erro Causa
app '<X>' not registered (no state file) App não passou por runner add
app '<X>' has no current_version (not deployed yet?) App registrada mas nunca deployada
stop failed: 404 No such container Container já parado ou removido — rode runner deploy

Veja também

By Borlot.com.br on 15/05/2026