runner unregister
Remove completamente uma aplicacao registrada do Runner. Para containers, remove configs Traefik, deleta o diretorio da app e limpa todos os state files.
Sintaxe
runner unregister <app>
runner unregister <app> --force
runner unregister <app> --keep-running
runner unregister <app> --keep-traefik
runner unregister <app> --force --jsonArgumentos
| Argumento | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
app |
string | Sim | Nome da app, path ou project/system |
Flags
| Flag | Default | Descricao |
|---|---|---|
--force |
false | Pula confirmacao interativa |
--keep-running |
false | Nao para nem remove containers |
--keep-traefik |
false | Nao remove configs Traefik |
--json |
false | Output em JSON |
-x, --exact |
false | Desliga a resolucao por query: um alvo so |
-y, --yes |
false | Confirma quando a query casa varios alvos do mesmo projeto. Distinto de --force (que pula o guard de backup) e nao autoriza atravessar projetos |
O que e removido
Por padrao (sem flags), o unregister executa 5 etapas:
| Etapa | O que remove | Flag para pular |
|---|---|---|
| 1 | Containers (por label CCS) | --keep-running |
| 2 | Configs Traefik (*.yml) | --keep-traefik |
| 3 | Diretorio da app | - |
| 4 | State files (principal + PRs) | - |
| 5 | State de canary | - |
Cenarios de Uso
Remover tudo (padrao)
runner unregister print
# Remove app 'print' and all its data? [y/N] y
# Unregistered 'print' (8 items cleaned)Remover sem confirmacao (automacao)
runner unregister print --forceDesregistrar mas manter rodando (migracao)
Util quando quer parar de gerenciar via Runner mas manter o servico ativo:
runner unregister print --force --keep-running --keep-traefikRemove apenas: diretorio da app, state files, canary state. Mantém: container rodando, Traefik roteando.
Parar container mas manter rota (debug)
runner unregister print --force --keep-traefikOutput JSON (integracao CCS Client)
runner unregister print --force --json{
"app": "print",
"project": "print",
"removed": true,
"cleaned": [
"container:print_production_v1-0-0",
"traefik:devborlot_print_production.yml",
"dir:/data/apps/print",
"state:print.yml"
]
}Diferenca entre unregister, remove e destroy
| Comando | Escopo | Uso |
|---|---|---|
runner unregister <app> |
App inteira | Remove tudo: containers, traefik, dir, state |
runner remove <app> --pr N |
PR deploy | Remove apenas um PR deploy especifico |
runner destroy <project> -i <instance> |
Instancia | Remove containers e traefik de uma instancia |
Veja Tambem
- runner reset — reset sem desregistrar
- runner add — registrar nova app
- runner destroy — remover instancia especifica
Multiplos alvos e a fronteira do projeto (v2.80.0+)
<app> nao e um nome exato: e uma query, casada por segmento. runner unregister ccs
alcanca ccs/sys, ccs/front e ccs/worker — replicar o comando nos sistemas de um
projeto e o desenho do runner, nao um acidente.
| Situacao | Comportamento |
|---|---|
| 1 alvo | Executa direto, sem cerimonia |
| N alvos, mesmo projeto | Lista os alvos e pede confirmacao. -y, --yes dispensa |
| N alvos, projetos distintos | Terminal: pergunta. Cron/CI (sem TTY): aborta com exit != 0. Nenhuma flag autoriza |
O "projeto" aqui e a raiz antes do primeiro hifen: ccs-front e ccs-sys sao o
mesmo projeto (ccs); ccs-front e nfse-front nao sao.
Por que `--yes` nao autoriza atravessar
--yes e passado por habito, em script e cron. Se valesse para o cruzamento, o gate
morreria exatamente onde ninguem esta olhando. Uma query casa por segmento e deveria
cair dentro de uma familia — atravessar e anomalia, nao intencao.
ERROR unregister atravessa 2 projetos (ccs, nfse) em 4 alvos:
- ccs/sys
- ccs/front
- nfse/sys
- nfse/front
Uma query casa por segmento e deveria cair dentro de UMA família — atravessar aqui é anomalia, não intenção, e por isso nenhuma flag autoriza.
Este comando não opera em massa entre projetos: rode um projeto por vez.
Para um alvo só: -xEm terminal interativo o cruzamento pergunta em vez de abortar. Em cron/CI (sem TTY) aborta com exit != 0.
Saidas:
-x, --exact— desliga a query e mira um alvo so- rodar um projeto por vez