같은 DNS 이름을 유지하면서 Discourse를 다른 서버로 이전하는 방법

상세한 단계에 대해 감사합니다. 저도 비슷한 작업을 해야 했는데, 새로운 호스트로 이전하는 과정이었어요.
사이트가 정상적으로 작동하고 있었기 때문에 백업을 통해 복구하는 것보다는 여기 있는 단계를 따르는 게 나을 것 같아서 그렇게 했죠.

거의 성공했지만, 새 호스트에서 재빌드(rebuild)가 실패했습니다.
알고 보니 두 호스트의 UID/GID 매핑이 완전히 일치하지 않아서, Postgres를 시작할 때 데이터 폴더의 소유권이 잘못되어 오류가 발생했네요.

이런 문제는 다른 상황에서도 발생할 수 있으며, 다행히 해결 방법이 있습니다.

이 게시물에서 설명하는 시나리오에 대해 한 가지 추가적인 세부 사항이 있습니다. 컨테이너가 아직 빌드되지 않았기 때문에 이 단계에서는 ./launcher enter app 명령이 작동하지 않는다는 점입니다. 재빌드에는 상당한 시간이 소요되므로, 빌드를 수행 중인 컨테이너의 이름을 docker ps 명령으로 확인한 뒤 컨테이너에 진입할 수 있었습니다:

docker exec -it <container_name> bash
chown -R postgres:postgres /shared/postgres_*

이후 재빌드를 다시 시도하면 실패합니다(또는 CTRL+C로 중지할 수 없습니다). 재빌드가 멈춘 후 다시 실행하면 권한 문제가 해결됩니다:

./launcher rebuild app

그리고 다시 정상적으로 실행됩니다 :sweat_smile: .