웹 UI를 통한 업데이트가 호환성 문제를 일으키는 것이 의도된 것인가요?

방금 웹 UI를 통해 업그레이드를 시도해 보았습니다. 첫 번째 단계는 잘 진행되었지만, 두 번째 단계(Discourse 버전 업데이트)는 중간쯤에서 오류가 발생했고, 이제 포럼이 전혀 작동하지 않습니다(오직 ‘Oops’ 페이지만 표시됩니다).

수동으로 ./launcher rebuild app를 실행하기 위해 ssh로 로그인하면 다음 메시지가 표시됩니다.

ERROR: Docker version 18.06.3-ce not supported, please upgrade to at least 20.10.0, or recommended 24.0.7

해당 문제의 가능한 해결책은 제 역량 범위 밖이므로 일단 제쳐두고, 이것이 의도된 동작인지 궁금합니다. UI는 초보자도 쉽게 사용할 수 있도록 설계되어 있고, 위험한 작업은 ssh로 직접 들어가야 한다는 막연한 이해가 있었기 때문에, IT 전문가가 백업으로 도움을 줄 수 있을지 확인하지 않고도 시도해도 괜찮을 것 같아 안심하고 진행했습니다.

그렇게 하려는 노력을 기울이지만, 기본 구성 요소가 깨져 있으면 할 수 있는 일이 아무것도 없습니다.

Dashboard.literatecomputing.com은 클릭 한 번으로 명령줄 업그레이드를 수행하며, 필요한 경우 Docker를 업데이트합니다. 또한 새 컨테이너 생성에 실패하면 기존 컨테이너를 재시작합니다.

아직도 문제가 생길 수 있는 부분들이 있습니다.

UX 업그레이드의 가장 큰 장점은 다운타임이 거의 없다는 점이며, 이는 2개 컨테이너 구성이 대부분 제공합니다.

Docker가 오래되었다는 것이 깨진 상태로 간주될 수 있을까요? 저는 그것을 Discourse 측의 호환성을 깨는 변경(breaking change)이라고 부르려 합니다.

한번 살펴보겠습니다. 사실 우리는 셀프 호스팅을 하고 있으며, 운영체제도 오래된 버전이라 나중에 어떤 작업을 해야 할지 알고 있었지만, 그것이 이렇게 예상치 못한 시점에 강제로 이루어질 줄은 몰랐습니다.

그건 정말 답답한 일이네요.

Docker Engine | endoflife.date 를 확인해 보면 (그리고 “보이지 않는 미유지 릴리스 보기” 버튼을 클릭하면), Docker 18의 지원이 6년 전(2018년 8월 18일)에 종료되었음을 알 수 있습니다. 업그레이드를 하는 것이 결코 이르다고 할 수 없습니다.

그러므로, 만약 Docker와 운영체제가 그렇게 오래된 버전을 사용 중이라면, 스스로도 알고 있을 테니, Discourse도 업그레이드해서는 안 됩니다. :person_shrugging:

Discourse가 실행 중인 기반 Docker 버전을 인식하여 UX에서 사용자에게 경고할 수 있는지는 확실하지 않습니다.