Como realizar uma restauração com dois contêineres?

Pequena pergunta: como realizar a restauração quando você tem vários contêineres (dados e apenas_web). Tentei este tutorial primeiro de dentro do contêiner de dados:

root@docker2:/var/discourse# ./launcher enter data
x86_64 arch detected.
root@docker2-data:/# discourse enable_restore
bash: discourse: command not found

OK, o aplicativo discourse está no contêiner web. Mas aqui a restauração lança uma exceção e termina com um erro:

Restaurações agora são permitidas. Desabilite-as com `disable_restore`
root@forum:/var/www/discourse# discourse restore netzwissen-forum-2023-10-07-125819-v20230913194832.tar.gz
O nome do plugin é 'discourse-topic-voting', mas o diretório do plugin é chamado 'discourse-voting'
Iniciando restauração: netzwissen-forum-2023-10-07-125819-v20230913194832.tar.gz
[INICIADO]
'system' iniciou a restauração!
Marcando restauração como em execução...
Garantindo que /var/www/discourse/tmp/restores/default/2023-10-07-132317 exista...
Copiando arquivo para o diretório tmp...
EXCEÇÃO: /var/www/discourse/lib/discourse.rb:138:in `exec': Falha ao copiar o arquivo para o diretório tmp.
cp: não é possível encontrar o arquivo '/var/www/discourse/public/backups/default/netzwissen-forum-2023-10-07-125819-v20230913194832.tar.gz': Arquivo ou diretório inexistente
/var/www/discourse/lib/discourse.rb:172:in `execute_command'
/var/www/discourse/lib/discourse.rb:138:in `exec'
/var/www/discourse/lib/discourse.rb:34:in `execute_command'
/var/www/discourse/lib/backup_restore/local_backup_store.rb:47:in `download_file'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:62:in `copy_archive_to_tmp_directory'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:22:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tentando reverter...
Não foi necessário reverter
Limpando as coisas...
Removendo o diretório tmp '/var/www/discourse/tmp/restores/default/2023-10-07-132317'...
Marcando restauração como concluída...
Notificando 'system' do fim da restauração...
Concluído!
[FALHOU]
Restauração concluída.

Qual é o truque para fazer a restauração funcionar em implantações com contêineres de dados e web separados?

Obrigado, Thommie

Você fez o upload do backup para /var/discourse/shared/web-only/default?

Você pode executar

discourse restore

Para obter uma lista de backups disponíveis.

Você também pode executar um backup apenas na web para ver onde ele coloca seu valor, para que você saiba que está colocando o seu no lugar certo.

EDIT: Editei o OP e adicionei isto:

Isso ajuda?

Hmmm,
não, ainda não está funcionando

Tenho o arquivo de backup aqui:

thommie@docker2:/var/discourse/shared/web-only$ ls
backups  log  netzwissen-forum-2023-10-09-201019-v20230913194832.tar.gz

Então

root@docker2:/var/discourse# ./launcher enter web_only

x86_64 arch detected.
root@forum:/var/www/discourse#

root@forum:/var/www/discourse# discourse restore
Você deve fornecer um nome de arquivo para restaurar. Você quis dizer um dos seguintes?

  
discourse restore forum-netzwissen-eu-2023-10-08-033221-v20230926165821.tar.gz

Portanto, a restauração mostra apenas um arquivo de backup de dentro do contêiner web_only da nova instância do fórum (o destino do backup). Mas não o arquivo de backup da instância de origem que está disponível em /var/discourse/shared/web-only/ no sistema HOST

Portanto, o “discourse restore” não usa o volume mapeado no host, mas apenas o que está dentro do contêiner.

??

ele precisa estar em /var/discourse/shared/web-only/backups/default

dentro do contêiner execute

 discourse backup

e veja onde ele coloca o backup e coloque o seu no mesmo local.

@pfaffman você está certo, eu estava na pasta errada, a restauração foi concluída com sucesso

obrigado pela ajuda!

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.