/var/discourse/launcher run app "echo 'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run' | rails c"
Se eu usar a rota do rails c, o backup funciona. Mas essa linha única também deveria funcionar — ou funcionava em 2020 (ou foi em -22…)
E o que eu realmente tento fazer é obter apenas um dump do banco de dados, compactado, em um local onde eu possa movê-lo para o S3. E não, eu não quero fazer isso manualmente, o backup deve ser automatizado. E não, uma vez por dia não é suficiente, porque eu não quero perder o conteúdo de 24 horas se algo der muito errado.
Você quer dizer conectar ao redis? Qual é o erro real que você vê?
launcher run app executa um comando em um novo contexto de contêiner, então o redis não estará em execução. Isso só funcionaria se o redis for externo.
O seguinte deve funcionar, pois é executado no contexto do contêiner existente:
docker exec -i app rails c <<<'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run'
Por que você está fazendo o acima em vez de, por exemplo, o mais simples discourse backup --sql-only?
Você também pode dizer ao Discourse para usar o S3 diretamente como um local para backups, se desejar.
Porque Docker e contêineres são lugares horríveis, onde nada funciona, como crontab e nano Eu sei, mais ou menos, o que faço quando vejo /var/discourse, mas depois de ./launcher enter app eu me perco totalmente. É por isso que meu servidor Mastodon faz backup de si mesmo, mas o Discourse não (bem, uma vez por dia sim, mas ainda assim).
Sim, eu sei que discourse backup faz o que eu quero, ele até envia o dump para o S3, mas eu não sei como programá-lo — por causa dessa coisa de contêiner horrível e assustadora, que é um sistema operacional dentro de um sistema operacional.
Couldn't connect to Redis
bundler: failed to load command: pry (/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/pry)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection': Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED) (Redis::CannotConnectError)
E depois disso veio uma lista quilométrica onde cada linha começava com from e havia um zilhão de coisas diferentes do Ruby, gems, etc. Não parecia muito interessante.