# 런처 실행 앱에서 백업 시도 시 오류 발생

**URL:** https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553
**Category:** Self-hosting
**Tags:** backups
**Created:** [1월 10, 2025, 6:39오후 UTC](https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553 "2025-01-10T18:39:36Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [1월 10, 2025, 6:39오후 UTC](https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553/1 "2025-01-10T18:39:36Z")

</div>

이렇게 하면 Redis를 시작할 때 오류만 발생합니다.

```plaintext
/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시간 분량의 데이터를 잃고 싶지 않으니까요.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [1월 10, 2025, 7:33오후 UTC](https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553/2 "2025-01-10T19:33:03Z")

</div>

참고(2020년)에 대한 크로스 링크를 추가합니다. 업데이트가 필요할 수 있으므로:

> [@명령줄 데이터베이스 전용 백업](https://meta.discourse.org/t/command-line-database-only-backup/153232/3?u=cocoquark):
>
> Thanks! I read enough here that I think I know and remember everything that’s been posted and sometimes forget to search. man_shrugging 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"

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [1월 10, 2025, 7:48오후 UTC](https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553/3 "2025-01-10T19:48:53Z")

</div>

> [@Jagster](#):
>
> 이렇게 하면 Redis를 시작할 때 오류만 나요.

Redis에 연결하는 것을 말씀하시는 건가요? 실제로 확인되는 오류가 무엇인가요?

`launcher run app`은 새로운 컨테이너 컨텍스트에서 명령을 실행하므로 Redis는 실행되지 않습니다. 이는 Redis가 외부에 있는 경우에만 작동합니다.

다음은 기존 컨테이너의 컨텍스트에서 실행되므로 정상적으로 작동해야 합니다:

```plaintext
docker exec -i app rails c <<<'BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run'

```

> [@Jagster](#):
>
> 그리고 제가 실제로 하려는 것은 데이터베이스 덤프만 받는 것입니다.

더 단순한 `discourse backup --sql-only` 대신 위와 같은 방식을 사용하시는 이유는 무엇인가요?

> [@Jagster](#):
>
> 이런 곳에 두면 S3로 이동시킬 수 있습니다.

원하시는 경우, Discourse에 백업 위치로 S3를 직접 사용하도록 설정할 수도 있습니다.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [1월 10, 2025, 8:10오후 UTC](https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553/4 "2025-01-10T20:10:58Z")

</div>

> [@supermathie](#):
>
> `discourse backup --sql-only`

Docker와 컨테이너는 crontab이나 nano 같은 것들이 전혀 작동하지 않는 끔찍한 곳들이거든요. :joy: `/var/discourse`를 보면 제가 뭘 해야 하는지 대충은 알지만, `./launcher enter app`을 실행한 후에는 완전히 길을 잃습니다. 그래서 제 Mastodon 서버는 백업이 되는데, Discourse는 그렇지 않아요(하루에 한 번은 되긴 하지만, 그래도요).

네, 제가 원하는 작업을 `discourse backup`이 수행한다는 건 알고 있습니다. 덤프를 S3로 보내기도 하죠. 하지만 타이밍을 어떻게 잡아야 할지 모르겠어요 — 바로 그 끔찍하고 무서운 컨테이너, 즉 OS 안에 있는 OS 같은 그거 때문이거든요.

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [1월 10, 2025, 9:31오후 UTC](https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553/5 "2025-01-10T21:31:58Z")

</div>

> [@Jagster](#):
>
> 타이밍을 어떻게 잡아야 할지 모르겠어요

컨테이너 _외부_에서 사용할 수 있는 스케줄러가 있나요?

거기에서 스케줄링할 수 있습니다. 예를 들어:

```plaintext
# 호스트 crontab에 추가
# 매 4시간마다 정각에 백업 실행
0 */4 * * * docker exec app discourse backup --sql-only

```

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [1월 10, 2025, 9:50오후 UTC](https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553/6 "2025-01-10T21:50:27Z")

</div>

너무 쉬워서 거의 그날의 가장 큰 실망감이 될 뻔했어요. 그리고 이제 쓸모없는 awscli 하나를 들고 있게 됐네요.

여기서 핵심은 `docker exec`입니다… 이제 구글링을 시작할 단단한 단서를 하나 갖게 됐네요.

감사합니다!

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [1월 10, 2025, 10:06오후 UTC](https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553/7 "2025-01-10T22:06:11Z")

</div>

아, 맞다… 그 에러 말이야:

```plaintext
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 같은 것들이 줄줄이 나열된 엄청나게 긴 목록이 있었어. 별로 흥미롭지 않아 보였지.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2월 9, 2025, 10:06오후 UTC](https://meta.discourse.org/t/launcher-run-app-gives-error-when-trying-backup/346553/8 "2025-02-09T22:06:54Z")

</div>

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