Adotar um Container Existente (`runner adopt`)
runner adopt traz um container já rodando para dentro da gestão do Runner, sem recriá-lo. O comando captura as variáveis de ambiente do container em produção, classifica cada uma como secreta ou não (usando a mesma detecção automática do wizard) e grava .env/.secrets — reencriptando o bundle no fim.
Quando usar
Use runner adopt quando você tem um container rodando manualmente (subido via docker run ou docker-compose up direto, fora do Runner) e quer passar a gerenciá-lo com runner deploy/runner fetch, sem perder as variáveis de ambiente já configuradas nele.
Diferente do runner wizard (que gera um .deploy.yml a partir do repositório) e do runner add (que registra uma app nova a partir de um repo), o adopt parte de um container já vivo como fonte de verdade das variáveis.
COLD vs WARM
| Modo | Quando ocorre | O que faz |
|---|---|---|
| COLD | Primeira adoção — a app ainda não está registrada no Runner | Registra a app (precisa de --repo, --branch, --ckey) e importa as envs do container |
| WARM | A app já está registrada no Runner | Reaproveita o registro existente — só importa/atualiza as envs do container |
Flags
| Flag | Obrigatória | Descrição |
|---|---|---|
app (posicional) |
Sim | Nome da app |
--from-container <CONTAINER> |
Sim | Container em produção de onde as variáveis serão capturadas |
-r, --repo <user/repo> |
Só no modo COLD | Repositório GitHub da app |
-b, --branch <branch> |
Só no modo COLD | Branch de deploy (dist) |
-t, --token <TOKEN> |
Não | Token do GitHub para repos privados (fica encriptado em repouso). Alternativa: --token-from <APP> para reaproveitar o token de outra app já registrada |
--ckey [VALOR] |
Só no modo COLD | Chave de conteúdo (content key) do bundle de secrets. Passada sem valor, gera uma chave aleatória de 32 caracteres |
--manifest-path <PATH> |
Não | Caminho do .deploy.yml dentro do repo (útil em monorepos) |
--instance <NAME> |
Não | Instância alvo (production, staging, etc.) |
--yes |
Não | Modo não interativo: variáveis com classificação ambígua (secreta ou não) são tratadas como secretas por padrão (conservador) |
Exemplos
Adoção COLD (primeira vez, app ainda não registrada)
runner adopt myapp --from-container myapp -r user/myapp -b main --ckeyIsso registra myapp no Runner (repo user/myapp, branch main), gera uma ckey aleatória e importa as variáveis de ambiente do container myapp já em execução.
Adoção WARM (app já registrada, só reimportar envs)
runner adopt myapp --from-container myappComo myapp já está registrada, o comando reaproveita o registro existente e apenas atualiza .env/.secrets com o que estiver no container.
Próximos passos
- Secrets e Encriptação — como funciona a recuperação zero-touch via ckey
- Migrar de docker-compose para o Runner — outro caminho de migração, partindo do arquivo compose em vez de um container rodando
- Wizards e Tools — Visão Geral — comparação entre wizard, adopt e outras ferramentas