DO 저장소 및 업로드된 백업이 표시되지 않음

SSH를 통해 새 저장 드라이브에 백업을 업로드했는데, 관리자 섹션에 표시되지 않습니다.

여기서 설명한 대로(Move Uploads and Backups to DigitalOcean Block Storage) app.yml은 다음과 같습니다:

## The Docker container is stateless; all data is stored in /shared
volumes:
   - volume:
      host: /mnt/volume_lon1_01/shared/standalone
      guest: /shared
   - volume:
      host: /mnt/volume_lon1_01/shared/standalone/log/var-log
      guest: /var/log
    - volume:
      host: /var/postgres_data_discourse
      guest: /shared/postgres_data

정말 머리가 복잡해지네요…

해당 값을 변경하거나 추가한 후 애플리케이션을 다시 빌드하셨나요?

네, 변경 사항을 적용한 후 애플리케이션을 다시 빌드했습니다.

디렉토리는 무엇이어야 하나요?

backups인지, 아니면 backups/default인가요?

현재 백업은 /backups에 있습니다.

UI에서 표시되지 않으면 오늘 명령줄을 통해 복원을 시도해 보겠습니다.

저기 있습니다. 백업을 만들어 저장 위치를 확인해 볼 수 있습니다.

코드가 같으니 아무것도 바뀌지 않습니다.

방금 백업을 만들었는데 어디에도 찾을 수 없어요. 로그에는 다음과 같이 나와 있습니다.

[2022-03-01 10:05:53] Making sure '/var/www/discourse/public/backups/default' exists...

하지만 해당 경로가 존재하지 않아요! 백업은 어디에 있을까요?

백업이 새로운 스토리지 드라이브에 저장된 줄 알았는데, 제가 놓치고 있는 부분이 무엇일까요?

./launcher rebuild app 명령을 실행할 때마다 포럼이 초기화되는 건가요?

이미지 등 어떤 것도 업로드할 수 없어요. 제가 괜찮다고 생각했던 가이드를 따를 때마다 빌드가 깨지는 게 정말 짜증나요. 기존 호스팅에 스토리지만 추가하려던 건데, 이제는 웹사이트 자체가 없는 상태라 너무 답답합니다 :face_with_spiral_eyes:

다시 시작하면서 “공식 가이드”를 사용했는데, 설치 시 스냅샷이 생성되어 필요 시 되돌릴 수 있습니다.

그것은 컨테이너 내부의 경로입니다.

백업은 컨테이너 외부의

    /mnt/volume_lon1_01/shared/standalone/backups/default

에 있어야 한다고 생각합니다.

그렇게 생각했는데 거기에도 없었어요. 게시물이나 이미지 등에 아무것도 업로드할 수 없었고 그냥 오류만 떴어요. 저 저장소 가이드는 작동하지 않는 것 같아요.

그 모든 것을 새 위치로 옮기셨나요?

  /mnt/volume_lon1_01/shared/standalone

및/또는

  /mnt/volume_lon1_01/shared/

에 무엇이 보이나요?

튜토리얼을 정확히 따라갔고 모든 것이 해당 위치에 있었으며, 이제 처음부터 다시 시작했습니다.

제가 수행한 작업은 다음과 같습니다:

다음 가이드를 따랐습니다: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

SSH를 통해 백업을 backups/default로 업로드했습니다.

문제가 발생하면 되돌릴 수 있도록 이 시점의 스냅샷을 생성했습니다.

이동할 준비가 된 볼륨이 /mnt/에 마운트되어 있습니다. 지난번에 디렉토리를 이동했을 때 다음과 같은 문제가 발생했습니다:

  • 백업이 새 볼륨의 백업 폴더에 저장되지 않았습니다 (사실 아예 찾을 수 없었습니다)
  • 이미지 업로드가 오류를 일으켰습니다. 아마도 어떤 이유에서인지 새 볼륨에 업로드할 수 없어서 그런 것 같습니다.

@techAPJ 님, 이 튜토리얼에서 업로드와 백업을 테스트했나요? Move Uploads and Backups to DigitalOcean Block Storage

이 모든 것 외에도, 저는 Letsencrypt를 기다리고 있습니다. 재빌드 시마다 새로운 인증서를 시도하게 된다는 것을 몰랐기 때문에 약 일주일 정도 걸린다고 생각합니다. 그래서 제 시도를 모두 소진했고, SSL 인증서를 확보하기 전까지는 사이트에 전혀 접근할 수 없습니다. http는 잠시 작동하지만 곧바로 https로 강제 전환되어 가입할 수 없습니다.

튜토리얼에 명시된 대로 다음 명령어를 사용했습니다:

mv /var/discourse/shared/standalone/postgres_data /var/postgres_data_discourse
mv /var/discourse/shared /mnt/volume_lon1_01

정말 답답하시겠어요. 죄송합니다. 제 입장에서는 지시사항이 올바르게 보이는데, 이런 건 아주 사소한 실수 하나만 해도 작동하지 않는 경우가 있거든요.

컨테이너에 들어가서 /shared/ 디렉토리를 확인해 보시면 파일이 보이나요?

여러 도메인으로 Let’s Encrypt 설정하기를 참고하시면 Let’s Encrypt의 제한을 우회할 수 있습니다.

아직 새 볼륨으로 아무것도 옮기지 않았는데, 단계대로 정확히 따라 했음에도 작동하지 않아서 명확한 설명이 필요합니다.

그 게시글은 전혀 이해가 되지 않고, 지금은 더 이상 이것 때문에 골치 아파하기 싫습니다. 말씀하신 대로 답답하지만, 일단 기다리겠습니다. 다른 작업을 하기 전에 제 사이트가 다시 정상적으로 돌아가고, 그 상태의 스냅샷만 확보하고 싶습니다.

참고로 @pfaffman, 지금까지 도움 주셔서 감사합니다. 정말 감사드립니다.

그럼 작동할 수 없고, 설명을 따르지 않은 것입니다. 더 안전한 방법은 새 볼륨으로 파일을 복사해 두고, 더 쉽게 오갈 수 있도록 하는 것입니다. 파일 복사를 먼저 한 뒤 삭제하는 과정(이는 파티션 간 이동이므로 mv가 정확히 수행하는 작업입니다)을 포함하면 설명이 더 안전해 보일 수 있습니다.

제 게시글의 이 부분을 보지 못하신 건가요?

그렇군요! 이제 모든 것이 더 명확해집니다.

무언가 잘못될 경우 원래 설정으로 되돌리기 쉽게 하려면, 파일을 새 파티션으로 mv하는 대신 rsync 또는 cp를 사용하여 복사하는 것을 권장합니다. 그런 다음 다음 명령을 실행하여 새 설정이 정상적으로 작동하는지 확인해 보세요.

 ./launcher destroy app
 ./launcher start app

작동하지 않으면 app.yml의 백업 버전으로 되돌리면 됩니다.

정말 좋은 아이디어네요, 감사합니다. 가능한 한 빨리 시도해 보겠습니다.