기존 서버에 SSL이 구성되어 있었기 때문에 이 가이드의 제안을 따르며 ./launcher rebuild app을 실행하고 있습니다.
그러면 Docker가 여러 항목을 가져오고 업데이트합니다. 현재 이미지는 Discourse 2.6.0.beta3 - https://github.com/discourse/discourse version 29f7e0689f61c5d85960a88f741ac3abced12d3e입니다.
처음 실행했을 때 Postgres 업그레이드 메시지가 표시되어 지시대로 ./launcher rebuild app을 다시 실행했습니다.
이제 매번 실패하는데, 설치된 Ruby 버전이 부족하다는 오류 때문이라고 생각합니다.
ERROR: Error installing bundler:
bundler-2.5.3 requires Ruby version >= 3.0.0. The current ruby version is 2.7.2.137.
전체 출력은 다음과 같습니다.
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock) failed with return #<Process::Status: pid 304 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,\"\"); print $0 }' Gemfile.lock)", "find $home ! -user discourse -exec chown discourse {} \\+"]}
2ad07f29ace1b5396d9944fc4fc5a1ec712727280e8bb3df760367d08bfe6a25
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
Docker가 필요에 따라 Ruby 버전을 업데이트할 거라고 생각했는데, 그렇지 않나요?
컨테이너에 수동으로 로그인하여 RVM을 설치하고 Ruby v3+를 활성화해 보았지만 여전히 같은 오류가 발생합니다.
이 시점에서 다소 막막한데, 설치된 버전이 너무 오래되어 ./launcher로 업그레이드할 수 없는 건지 궁금합니다.
하지만 기존 사이트의 백업을 복원했을 때 올바르게 복원되지 않은 것 같고, 현재 로그인 페이지가 작동하지 않습니다. 로그인/가입 버튼을 클릭할 때마다 JS 콘솔에 Discourse is not defined 오류가 발생합니다. 버전 차이가 크기 때문에 2.6.0 백업을 깨끗한 3.3.0 설치 환경으로 복원하는 것이 간단하지 않다고 추정합니다.
모든 것을 새 서버로 이전하는 작업이 제게는 작동하지 않고 있으며, 이 루비 오류가 매번 작업을 방해하기 때문에 ./launcher rebuild app를 실행할 수 없습니다.
네, 가능합니다. 다운그레이드는 불가능하기 때문에, Discourse를 빌드하기 전에 새로 설치할 때 app.yml 파일을 편집해야 합니다. GitHub에서 태그를 선택하세요. 저는 과거에 최신 버전으로 업그레이드하기 전에 구버전으로 복원해야 했던 적이 있어서 이 작업을 수행한 적이 있습니다.
이제 업그레이드하기 전에 문제가 발생할 것에 대비하여 정상 작동 중인 버전의 이미지를 백업해 둡니다.