Discourse 인스턴스를 업그레이드하던 중 git pull이 필요했는데, 오늘 ./launcher rebuild를 실행하니 FAILED TO BOOTSTRAP 오류가 발생하고 있으며, 아직 실패 원인을 정확히 파악하지 못하고 있습니다.
저희는 Ubuntu 18.04에서 Discourse를 운영하고 있습니다. 오늘 업그레이드 전까지는 모든 것이 정상적으로 작동했습니다.
저희의 app.yml 파일은 web.yml로 명명되어 있으므로, 다음과 같이 실행했습니다:
# git pull
# ./launcher rebuild web
출력 결과의 마지막 부분은 다음과 같습니다:
I, [2022-02-18T19:25:46.155360 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
Discourse requires Redis 6.2.0 or up
I, [2022-02-18T19:25:55.644442 #1] INFO -- : gem install sawyer -v 0.8.2 -i /var/www/discourse/plugins/discourse-github/gems/2.7.5 --no-document --ignore-dependencies --no-user-install
Successfully installed sawyer-0.8.2
1 gem installed
gem install octokit -v 4.21.0 -i /var/www/discourse/plugins/discourse-github/gems/2.7.5 --no-document --ignore-dependencies --no-user-install
Successfully installed octokit-4.21.0
1 gem installed
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 1121 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
85459e34ac2c6275dd1700de2c469124a9fded84800b8c6b4686c1c6b66824e2
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
현재 설치된 플러그인 목록은 다음과 같습니다:
discourse/docker_manager.git
discourse/discourse-github.git
discourse/discourse-solved.git
discourse/discourse-data-explorer.git
discourse/discourse-akismet.git
discourse/discourse-spoiler-alert.git
cpradio/discourse-plugin-replygif.git
discourse/discourse-push-notifications.git
discourse/discourse-chat-integration
Launcher 출력을 살펴봐도 실패를 유발하는 오류를 찾을 수 없습니다. 실패 원인에 대한 조언이 있을까요?
이전 커밋으로 되돌려 최신 변경 사항 없이 웹 컨테이너를 성공적으로 재빌드할 수 있는지 확인해 보았지만, 여전히 부트스트랩 실패 오류가 발생합니다. ![]()
업데이트:
저희는 별도 컨테이너 설정을 사용 중이었으며, 이는 권장되지 않는 방식으로 밝혀졌습니다. 또한 저희의 데이터 컨테이너는 매우 오래된 버전이었고 Redis v5.0.5를 실행 중이었습니다(Discourse는 현재 6.2.0 이상을 요구합니다). 따라서 데이터 컨테이너를 재빌드한 후 웹 컨테이너도 성공적으로 재빌드했습니다. 이번 경험을 바탕으로 향후에는 멀티 컨테이너 방식을 중단할 예정입니다.
매우 유용한 링크를 공유해 주신 @pfaffman님께 감사드립니다!