Jagster
(Jakke Lehtonen)
2025 年1 月 10 日 18:39
1
这导致我出现错误,启动 Redis。
/var/discourse/launcher run app "echo 'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run' | rails c"
如果我走 rails c 路线,备份就可以工作。但那一行命令也应该起作用——或者它在 2020 年(或者是不是 -22……)就起作用了。
而我真正想做的是只获取数据库转储,打包好,放到我可以移动到 S3 的地方。而且,我不想手动完成,备份必须自动化。而且,一天一次是不够的,因为如果出现严重问题,我不想丢失价值 24 小时的数据。
Canapin
(Coin-coin le Canapin)
2025 年1 月 10 日 19:33
2
Just cross-linking the reference (from 2020) in case it should be updated:
Thanks! I read enough here that I think I know and remember everything that’s been posted and sometimes forget to search.
I marked your post as the solution, but here’s the one-liner:
/var/discourse/launcher run app "echo 'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run' | rails c"
Jakke Lehtonen:
这只会给我带来错误,启动 Redis。
您是指连接到 Redis 吗?您看到的具体错误是什么?
launcher run app 在新的容器上下文中运行命令,因此 Redis 不会运行。这只有在 Redis 是外部运行时才有效。
以下命令应该可以工作,因为它在现有容器的上下文中运行:
docker exec -i app rails c <<'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run'
Jakke Lehtonen:
而且我实际上想做的是只获取数据库转储
为什么您要执行上述操作,而不是执行更简单的 discourse backup --sql-only?
Jakke Lehtonen:
在这样的地方我可以将其移至 S3
如果您愿意,您也可以直接告诉 Discourse 将 S3 用作备份位置。
2 个赞
Jagster
(Jakke Lehtonen)
2025 年1 月 10 日 20:10
4
因为 Docker 和容器太糟糕了,什么都用不了,比如 crontab 和 nano 我知道,大概,当我看到 /var/discourse 时我会做什么,但在 ./launcher enter app 之后我就完全迷失了。这就是为什么我的 Mastodon 服务器会自动备份,但 Discourse 不会(嗯,一天一次是的,但仍然如此)。
是的,我知道 discourse backup 能做我想做的事,它甚至会将转储发送到 S3,但我不知道如何安排它——因为那个可怕而令人恐惧的容器东西,它是一个操作系统中的操作系统。
Jakke Lehtonen:
我不知道如何安排时间
你有一个在容器外部 可用的调度程序,对吗?
你可以在那里安排它,例如:
# 放入主机 crontab
# 每 4 小时在整点运行一次备份
0 */4 * * * docker exec app discourse backup --sql-only
5 个赞
Jagster
(Jakke Lehtonen)
2025 年1 月 10 日 21:50
6
这太容易了,简直是今天最大的扫兴之事。现在我有一个完全没用的 awscli。
docker exec 是这里的关键……现在我有一个可以开始谷歌搜索的扎实的东西了。
谢谢!
3 个赞
Jagster
(Jakke Lehtonen)
2025 年1 月 10 日 22:06
7
哦,对了……那个错误:
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)
在那之后是一长串列表,每行都以 from 开头,里面有无数不同的 Ruby 项目、gem 等等。看起来没什么意思。
system
(system)
关闭
2025 年2 月 9 日 22:06
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.