# Backup de emergência - linha direta para o comando do container

**URL:** <https://meta.discourse.org/t/emergency-backup-direct-line-to-container-command-line/316666>\
**Category:** Self-hosting\
**Tags:** backups\
**Created:** [Julho 16, 2024, 9:38pm UTC](https://meta.discourse.org/t/emergency-backup-direct-line-to-container-command-line/316666 "2024-07-16T21:38:57Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![PhilipLoewen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/philiploewen/32/429709_2.png) [@PhilipLoewen](https://meta.discourse.org/u/PhilipLoewen)\
**Post date:** [Julho 16, 2024, 9:38pm UTC](https://meta.discourse.org/t/emergency-backup-direct-line-to-container-command-line/316666/1 "2024-07-16T21:38:57Z")

</div>

Aprendi algo que pode ajudar outras pessoas.

**Contexto:** Conforme detalhado [em outro lugar](https://meta.discourse.org/t/broke-my-installation-with-a-failed-upgrade-how-can-i-recover/315282), minha instalação do Discourse estava hospedada em um VPS cujo disco era muito pequeno para concluir uma atualização. Primeiro, cliquei em “Atualizar” no painel de controle de administração. A atualização falhou e a interface gráfica nunca mais funcionou. Depois disso, acessei o console do meu VPS e executei o famoso comando `./launcher rebuild app`. Isso também nunca foi concluído: eu havia ficado decisivamente sem espaço em disco. Para obter mais espaço e manter o orçamento, decidi mover toda a minha configuração para um novo VPS com uma empresa de hospedagem diferente. Salvar os dados preciosos do site era uma alta prioridade.

**Falhas:** Os dois métodos mais óbvios para fazer um backup não funcionaram:

- minha tentativa original de atualização quebrou a interface gráfica baseada na web, então não havia como acessar o painel de controle de administração e iniciar um backup a partir dele; e
- tentar entrar no contêiner docker e executar alguns comandos shell também não funcionou. O comando recomendado para isso é `/var/discourse/launcher enter app`. Mas, pelo menos no meu caso, o script `launcher` tentaria reconstruir o aplicativo antes de me deixar entrar nele, e as reconstruções estavam falhando consistentemente, então este comando nunca me deu um contêiner, muito menos um shell dentro dele.

**Sucesso:** Eu estava prestes a desistir quando tive uma surpresa agradável. Trabalhando na linha de comando da minha pequena VM, digitei `docker ps` e descobri que havia um contêiner ativo chamado `app`. E o docker tem uma maneira direta de entrar em um contêiner em execução: o comando é `docker exec -it app bash`.

Dentro do contêiner, consegui progredir: emiti o comando `discourse backup`, esperei alguns minutos e depois copiei o arquivo `<backup>.tar.gz` para um local seguro. Com um backup atual em mãos, foi possível concluir a migração da minha configuração para sua nova casa. (Existem outros tópicos nesses fóruns mostrando como fazer isso.)

O ponto principal aqui é que o comando `docker` acima para entrar no contêiner funcionou, mesmo quando o comando específico do Discourse `./launcher` não funcionou.

Obrigado aos inventores e mantenedores deste excelente produto.

---

_[View the full topic](https://meta.discourse.org/t/emergency-backup-direct-line-to-container-command-line/316666)._
