runner ckeys copy
Copia a ckey de uma app (--from) para outra (--to), de forma que ambas
compartilhem a mesma chave de criptografia. Disponível desde v2.30.6.
Use quando: N apps compartilham um repo upstream (docker-compose com
múltiplos serviços) — o runner armazena .runner/secrets.enc na raiz do repo,
portanto as apps precisam ter a mesma ckey para que reset-bundle funcione
sem sobrescrever o bundle umas das outras. Ver guia →
../../recuperar/multi-service-shared-repo.md.
Sintaxe
runner ckeys copy [OPTIONS] --from <FROM> --to <TO>Flags
| Flag | Default | Descrição |
|---|---|---|
--from <FROM> |
— | Obrigatório. App de origem (ckey preservada inalterada) |
--to <TO> |
— | Obrigatório. App de destino (ckey será substituída) |
--yes |
— | Skipa a confirmação interativa |
-o, --output <FORMAT> |
human |
Formato de saída: human, json, yaml |
--json |
— | Atalho para --output json |
--insecure |
— | Bypassa guards de segurança (gera banner e audit log) |
-h, --help |
— | Exibe ajuda |
Exemplo
$ runner ckeys copy --from meet-api --to meet-worker
This will REPLACE the ckey of meet-worker with the ckey of meet-api.
meet-worker bundles will be unreadable until you run `runner secrets reset-bundle meet-worker`.
Proceed? [y/N]: y
Ckey copied: meet-api → meet-worker
Next step: runner secrets reset-bundle meet-workerSem prompt interativo (script/CI):
$ runner ckeys copy --from meet-api --to meet-worker --yes
Ckey copied: meet-api → meet-worker
Next step: runner secrets reset-bundle meet-workerO que o comando faz
- Lê a ckey do state file de
--from(/opt/runner/state/<from>.yml) - Atualiza o campo
ckey:no state file de--to - Não toca nos bundles
.runner/secrets.encde nenhuma das apps
Após o comando, os bundles de --to ficam ilegíveis até você rodar
runner secrets reset-bundle <to>, que os reconstrói com a nova ckey.
Aviso de segurança
A operação substitui a ckey da app de destino. Qualquer backup ou bundle
criptografado com a ckey antiga de --to se torna irrecuperável. Certifique-se
de que o plaintext de --to está completo antes de prosseguir:
runner secrets show meet-workerFluxo completo: multi-service compartilhando bundle
# 1. Identificar divergências antes de unificar
runner secrets diff meet-api meet-worker
# 2. Resolver conflitos (ver runner secrets diff)
runner secrets set meet-worker DATABASE_URL "valor-canonico"
# 3. Copiar a ckey da app "principal" para as demais
runner ckeys copy --from meet-api --to meet-worker
runner ckeys copy --from meet-api --to meet-scheduler # se houver mais
# 4. Rebuild dos bundles das apps que receberam a ckey
runner secrets reset-bundle meet-worker
runner secrets reset-bundle meet-scheduler
# 5. Verificar
runner secrets show meet-api
runner secrets show meet-worker
runner secrets show meet-schedulerErros comuns
app_not_found: meet-api— app de origem não registrada; verifique comrunner list.no_ckey_in_from— app de origem foi registrada sem ckey; re-registre comrunner add --ckey "...".same_app—--frome--tosão o mesmo app; nenhuma ação necessária.
Veja também
- `runner secrets diff` — identifica conflitos antes de unificar
- `runner secrets reset-bundle` — reconstrói bundle após mudança de ckey
- `runner ckeys` — subcomandos de gerenciamento de ckeys
- Multi-service shared repo