안녕하세요, 저는 Docker에서 Discourse CE를 실행하고 있습니다. 루트 권한이 있으며, docker id stop과 docker image save -o file.tar 명령을 사용하여 컨테이너를 백업했습니다. 이후 Discourse 업그레이드를 성공적으로 완료했습니다. 이제 docker image load -i file.tar와 docker start id 명령을 사용하여 복원을 테스트해 보았지만, 예상했던 이전 버전이 아니라 업그레이드된 버전이 그대로 유지되고 있습니다.
어디서 실수를 한 걸까요?
감사합니다.
pfaffman
(Jay Pfaffman)
6월 17, 2023, 4:09오후
2
그건 좀 이상하네요.
데이터베이스(영구 저장소에 위치)가 이전 이미지에서 지원할 수 있는 범위를 넘어 마이그레이션되었기 때문에 작동하지 않을 것으로 예상했습니다.
어떻게 업그레이드하셨나요? 커맨드 라인에서 재빌드를 통해, 아니면 Discourse UX를 통해?
안녕하세요,
네, 저도 그 부분을 이해하지 못했습니다. 같은 방법으로 다시 시도해 봤는데 결과는 동일합니다. 웹 UI를 사용해 봤는데 잘 작동합니다. 오류도 문제도 없었습니다.
pfaffman
(Jay Pfaffman)
6월 17, 2023, 6:26오후
4
Discourse Docker 이미지를 삭제했나요, 아니면 백업을 다른 이미지로 복원했나요?
아니, 이미지를 파괴한 건 아니야. 그게 내 실수였어?
pfaffman
(Jay Pfaffman)
6월 17, 2023, 7:49오후
6
잘 모르겠어요. 이미지 저장 기능을 사용해 본 적이 없는 것 같아요.
하지만 그 백업을 새 컨테이너 이름으로 복원하는 것을 시도해 볼 것 같아요.
죄송합니다, 질문에 대한 답변이 누락되었습니다. 같은 내용이었으며, 백업 및 복원입니다.
@pfaffman이 언급했듯이 영속적 데이터는 컨테이너가 아닌 파일 시스템에 저장됩니다.
우리는 이렇게 물어야 합니다: 무엇을 달성하려고 하시나요?
아이디어는 간단했습니다. 밤마다 도커 컨테이너 전체를 백업하는 것이죠. 또한 이번처럼 beta4에서 beta5로 업그레이드하기 전에, 그리고 오류가 발생했을 때를 대비해 기존 컨테이너로 되돌리는 것이었습니다.
감사합니다.
pfaffman
(Jay Pfaffman)
6월 19, 2023, 9:46오전
10
데이터베이스도 되돌려야 합니다.
업그레이드를 실행하기 전에 테스트할 수 있도록 스테이징 사이트를 준비하는 것이 좋습니다. 또한 스테이징 사이트에서 컨테이너를 저장소로 푸시한 후, 해당 컨테이너를 프로덕션 사이트에서 실행할 수도 있습니다.