2.9.0.beta5에서 3.5.0.beta7로 업그레이드하려면 어떤 Docker 태그를 사용해야 하나요?

안녕하세요,

  1. Discourse가 Docker에서 실행되고 있습니다.

  2. 현재 확인되는 메시지는 다음과 같습니다.
    현재 2.9.0.beta5 버전을 사용 중이지만, 업그레이드가 중요하다고 표시된 최신 릴리스 버전은 3.5.0.beta7입니다.

  3. 다음 명령을 실행하면
    ./launcher rebuild app

아래와 같은 오류가 발생합니다.

x86_64 아키텍처 감지됨.
ERROR: 커널 버전 3.10.0-1160.119.1.el7.x86_64은(는) 지원되지 않습니다. 4.4.0 이상으로 업그레이드해 주세요.

이는 런처가 최신 빌드를 가져오기 때문입니다. 3.5.0.beta7에 사용할 태그는 무엇이어야 하나요?

올바른 태그를 알게 되면 다음 명령으로 업그레이드할 수 있다고 생각합니다.

./launcher rebuild app --run-image ‘discourse/base:<여기에 태그 버전 입력>’

이 정보를 찾아보았지만 아무것도 찾을 수 없었습니다.

미리 감사합니다.

어떤 운영체제에서 Discourse를 실행하려고 하시나요? EOL인 RHEL 7보다 좀 더 최신 버전으로 업데이트할 때가 된 것 같습니다.

안녕하세요,

CentOS 7입니다:

]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

uname -a

Linux msm5257.mjhst.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

1년 넘게 EOL(지원 종료)이 되었습니다. What to know about CentOS Linux EOL

새로운 OS가 설치된 새 VM을 구비하고, 기존 기계에서 백업을 받아 새 기계에 복원하는 것을 권장합니다. 이렇게 하면 데이터베이스 업그레이드 단계를 하나 줄일 수 있습니다.

특정한 이유로 CentOS를 선호하는 것이 아니라면, 이곳에서 대부분의 사용자가 사용하는 Ubuntu나, 현재 Discourse Docker 컨테이너의 기반이 된 Debian을 사용하는 것이 좋습니다.

답변해 주셔서 감사합니다.

이 점 충분히 이해하고 있습니다. 하지만 Ubuntu로 전환하는 것이 그렇게 쉬운 일이라면 이미 그렇게 했을 것입니다.
업그레이드를 수행하기 위한 도커 태그와 디스커스 버전에 대한 정보가 어딘가에 있는지요?

감사합니다.

어떤 방식으로든, 훨씬 새로운 버전의 Discourse를 실행하려면 먼저 더 새로운 커널을 실행 중이어야 합니다.

Docker 28이 필요할 것 같네요? 하지만 26으로도 충분할 수 있습니다.

CentOS 7을 업그레이드할 방법이 없는 것 같습니다. 따라서 새로운 VM으로 이동해야 하거나, 이것이 자체 서버라면 업그레이드를 위해 새 운영 체제를 설치해야 합니다. 일단 운영 체제 설치를 시작한다면, 다른 어떤 Linux를 설치하는 것이든 난이도 면에서 큰 차이가 없습니다.

운영 체제 업그레이드를 원하지 않는다면, Discourse도 업그레이드하지 마세요.

CentOS의 오픈소스 후속 버전들이 있다는 걸 확인했습니다. 그중 AlmaLinux가 유력한 후보로 보입니다. CERN이 이 배포판을 선택했고, 그들은 자신들이 하는 일을 잘 알고 있기 때문입니다. RedHat 기반의 배포판이므로 기존 시스템 관리 기술이 그대로 활용될 수 있습니다.

Docker를 선택적으로(cherry-picking) 사용하는 것만으로 문제를 해결할 수 있을지 확신할 수 없습니다. Docker 내에서 실행되는 프로세스는 다른 모든 프로세스와 동일한 커널을 사용하며, 현재 사용 중인 커널의 패치 레벨이 아닌 실제 커널 버전이 더 새로운 것으로 업그레이드되어야 할 것이라고 생각합니다.

새로운 운영체제로 새 서버를 프로비저닝한 뒤 Discourse 백업을 복원하는 것이 최선의 접근법이라는 의견에 동의합니다.