컨테이너 정지 시도 시 Rebuild이 동결됩니다

오늘 처음 You are running an old version of the Discourse image. Upgrades via the web UI are disabled until you run the latest image 메시지가 표시되었고, 설치가 깨진 것 같습니다.

호스팅 제공업체가 루트 사용자 생성을 허용하지 않아 각 명령어를 sudo로 실행하도록 안내된 대로 진행했습니다.

cd /var/discourse
sudo git pull
sudo ./launcher rebuild app

그 후 충돌 오류가 발생하여 pull 전에 sudo git stash를 실행해야 했습니다.

처음에는 모든 작업이 정상적으로 진행되는 것처럼 보였지만(1시간 이상 방치), 터미널 세션이 닫혔습니다(broken pipe 오류). 이를 해결하기 위해 주석 처리되어 있던 서버의 ClientAliveInterval을 60으로 설정하고 재시작한 뒤 다시 시도했습니다.

이제 리빌드 스크립트가 실행되면 docker 컨테이너를 중지하는 단계에서 크래시가 발생합니다.

리빌드 스크립트를 실행하기 전에 docker kill <id>를 실행하여 우회하려 했지만, 동일한 크래시가 발생했습니다(CPU 사용률이 약 15분간 100%에 달하다가 몇 시간 동안 아무 반응이 없습니다).

재부팅 후 사이트는 여전히 구동되지만 업데이트가 불가능합니다(UI 업데이트 프로그램이 여전히 오래된 Discourse 이미지를 실행 중이라고 표시함).

어떤 조언이라도 감사히 받겠습니다.

빌드 출력을 확인하지 않으면 추측하기가 꽤 어렵습니다.

tmux(또는 유사한 도구)를 사용하여 연결이 끊겨도 세션을 유지하는 것을 시도해 볼 수 있습니다(tmux attach 명령으로 세션에 다시 연결할 수 있습니다).

PostgreSQL 13 업데이트에 대해 확인해 보시는 것은 어떨까요?

Jay, 고마워. 문제를 찾은 것 같아.

내 VPS 제공업체 webdock.io(참 좋은 회사인데)는 호스트 레벨에서 ZFS를 사용하기 때문에 ZFS를 지원하지 않아. 중첩된 ZFS는 불가능하다고 조언을 받았어. 또한 내 설치 환경에 overlay2도 권장하지 않아서, 기본적으로 없는 vfs 스토리지 드라이버를 포함하도록 launcher 파일을 수정하라고 제안했어.

171‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎ Storage Driver: (vfs|aufs|zfs|overlay2)
‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‏‏‎‎‏⬆️

sudo git pull이 이 부분을 덮어썼고, 그 후 잘못된 스토리지 드라이버로 재구축을 시도한 것 같아.

방금 모든 것을 롤백한 뒤 launcher를 다시 수정하고 rebuild app을 실행했는데, 이제 모든 것이 다시 정상적으로 작동하고 있어.

cd /var/discourse
sudo git stash
sudo git pull
sudo nano launcher 

‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ 그리고 171번째 줄을 수정하여 vfs를 포함

sudo ./launcher rebuild app

Hey @ajmuir,

문제를 1년 넘게 전에 해결하셨다는 건 알지만, 이 논의에 제 생각을 조금이나마 더하고 싶었고, 이 스레드를 발견하는 신규 사용자분들이 올바른 방향으로 진행할 수 있도록 도움을 드리고자 합니다.

Webdock(현재)에서는 Docker 스토리지 드라이버로 fuse-overlayfs 사용을 권장합니다: How to change the Docker storage driver – Webdock

그 이유는 vfs가 디스크 공간 사용량이 높기 때문입니다.

하지만 Docker에 fuse-overlayfs를 사용하면 권장되지 않는 드라이버이므로 Discourse 런처 측에서 경고나 오류가 발생합니다.

이 문제를 해결하는 방법에 대한 자세한 설명은 제 블로그의 이 게시물에 있습니다: Deploying Discourse on a Webdock server

또한 egrep 구문에 설치된 드라이버를 추가하는 방식으로 진행하셔도 됩니다.

그리고 왜 Webdock이 루트 사용자 생성을 허용하지 않는다고 말씀하시는 건가요?
sudo su를 사용하여 간단히 루트로 전환한 후, Discourse 설치 가이드의 명령어를 실행하시면 됩니다.