/var/discourse/launcher run app "echo 'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run' | rails c"
Si tomo la ruta de rails c, la copia de seguridad funciona. Pero esa línea única también debería funcionar, ¿o funcionaba antes en 2020 (o fue en -22…)?
Y lo que realmente intento hacer es obtener solo un volcado de la base de datos, empaquetado, en un lugar donde pueda moverlo a S3. Y no, no quiero hacerlo manualmente, la copia de seguridad debe ser automatizada. Y no, una vez al día no es suficiente, porque no quiero perder el valor de 24 horas de cosas si algo sale muy mal.
¿Te refieres a conectarte a redis? ¿Cuál es el error real que ves?
launcher run app ejecuta un comando en un nuevo contexto de contenedor, por lo que redis no se estará ejecutando. Esto solo funcionaría si redis es externo.
Lo siguiente debería funcionar ya que se ejecuta en el contexto del contenedor existente:
docker exec -i app rails c <<<'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run'
¿Por qué haces lo anterior en lugar de, por ejemplo, el más simple discourse backup --sql-only?
También puedes indicarle a Discourse que use S3 directamente como ubicación para las copias de seguridad, si lo deseas.
Porque Docker y los contenedores son lugares horribles, donde nada funciona, como crontab y nano Sé, más o menos, lo que hago cuando veo /var/discourse, pero después de ./launcher enter app estoy totalmente perdido. Por eso mi servidor Mastodon se hace copias de seguridad, pero Discourse no (bueno, una vez al día sí, pero aun así).
Sí, sé que discourse backup hace lo que quiero, incluso envía el volcado a S3, pero no sé cómo programarlo — porque esa cosa horrible y aterradora de contenedor, que es un sistema operativo dentro de un sistema operativo.
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)
Y después de eso había una lista de una milla de largo donde cada línea comenzaba con from y había un zillón de cosas diferentes de Ruby, gemas, etc. No parecía muy interesante.