백업이 계속 실패합니다

안녕하세요,

사이트를 백업하려고 할 때마다 오류가 발생합니다.

[2022-12-05 00:08:22] pg_dump: executing SEQUENCE SET custom_emojis_id_seq
[2022-12-05 00:08:22] Finalizing backup...
[2022-12-05 00:08:22] Creating archive: blackiron-2022-12-05-000759-v20221201035918.tar.gz
[2022-12-05 00:08:22] Making sure archive does not already exist...
[2022-12-05 00:08:22] Creating empty archive...
[2022-12-05 00:08:22] EXCEPTION: /var/www/discourse/lib/discourse.rb:131:in `exec': tar: /var/www/discourse/public/backups/default/blackiron-2022-12-05-000759-v20221201035918.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now

[2022-12-05 00:08:22] /var/www/discourse/lib/discourse.rb:158:in `execute_command'
/var/www/discourse/lib/discourse.rb:131:in `exec'
/var/www/discourse/lib/discourse.rb:28:in `execute_command'
/var/www/discourse/lib/backup_restore/backuper.rb:205:in `create_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:34:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2022-12-05 00:08:22] Deleting old backups...
[2022-12-05 00:08:22] Cleaning stuff up...
[2022-12-05 00:08:22] Removing '.tar' leftovers...
[2022-12-05 00:08:22] Marking backup as finished...
[2022-12-05 00:08:22] Refreshing disk stats...
[2022-12-05 00:08:22] Notifying 'darkpixlz' of the end of the backup...
[2022-12-05 00:08:29] Finished!

이것이 무엇 때문에 발생하는지 잘 모르겠습니다. 어제 새로운 머신으로 이전하기 전까지는 잘 작동하고 있었는데요, 그 머신은 우리가 설정을 포함하도록 app.yml 파일을 복사하기 전까지 완전히 깨끗한 상태였습니다.

Discourse를 root 권한으로 실행 중인가요? app.yml 파일의 디스크 매핑 설정은 어떻게 되어 있나요?

네, 맞아요. 디스크 레이아웃을 확인해볼게요.

다음은 디스크 매핑입니다:

volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

이상하네요. 컨테이너에 들어가서 해당 디렉터리가 존재하는지, 그리고 거기에 디렉터리를 생성할 수 있는지 확인해 보겠습니다.

/var/discourse 폴더(의 일부)를 새 서버로 복사했나요? 그렇게 하면 권한/소유자가 깨질 수 있습니다.

설정 스크립트를 실행하고 app.yml을 복사한 뒤 백업에서 복원했습니다.

그렇게 해 보겠습니다!