/var/discourse/launcher run app "echo 'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run' | rails c"
rails c 경로를 사용하면 백업은 정상적으로 작동합니다. 하지만 이 원라인 명령어도 작동해야 합니다 — 아니면 2020년(혹은 2022년?)에는 작동했었나요?
제가 실제로 하려는 것은 데이터베이스 덤프만 압축하여 S3로 옮길 수 있는 위치에 저장하는 것입니다. 그리고 아니요, 수동으로 하려는 것이 아닙니다. 백업은 자동화되어야 합니다. 그리고 하루에 한 번은 부족합니다. 만약 문제가 발생하면 24시간 분량의 데이터를 잃고 싶지 않으니까요.
Docker와 컨테이너는 crontab이나 nano 같은 것들이 전혀 작동하지 않는 끔찍한 곳들이거든요. /var/discourse를 보면 제가 뭘 해야 하는지 대충은 알지만, ./launcher enter app을 실행한 후에는 완전히 길을 잃습니다. 그래서 제 Mastodon 서버는 백업이 되는데, Discourse는 그렇지 않아요(하루에 한 번은 되긴 하지만, 그래도요).
네, 제가 원하는 작업을 discourse backup이 수행한다는 건 알고 있습니다. 덤프를 S3로 보내기도 하죠. 하지만 타이밍을 어떻게 잡아야 할지 모르겠어요 — 바로 그 끔찍하고 무서운 컨테이너, 즉 OS 안에 있는 OS 같은 그거 때문이거든요.
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 같은 것들이 줄줄이 나열된 엄청나게 긴 목록이 있었어. 별로 흥미롭지 않아 보였지.