새로운 컨테이너 이미지를 부트스트랩하는 데 실패했습니다. 며칠 전까지는 잘 작동했는데, "아무것도 변경하지 않았음"에도 불구하고 오늘은 실패합니다. 로그:
[0:02:27] Still working on:
[0:02:27] v8
________ running 'vpython third_party/depot_tools/update_depot_tools_toggle.py
--disable' in
'/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/libv8-8.4.255.0/vendor'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/libv8-8.4.255.0/vendor/depot_tools/.cipd_bin/.cipd/pkgs/0/fI6WggdkRyN1r91MnTeApc2_gyTtXfYpueHZVLcaF8gC/vpython:
could not resolve options: failed to resolve Python script: stat
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/libv8-8.4.255.0/vendor/third_party/depot_tools/update_depot_tools_toggle.py:
no such file or directory
Error: Command 'vpython third_party/depot_tools/update_depot_tools_toggle.py
--disable' returned non-zero exit status 1 in
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/libv8-8.4.255.0/vendor
...
** 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.
자세히 살펴본 결과: libv8의 경우 GitHub에서 ruby builder의 버전 변경과 관련된 유사한 문제가 이미 보고되어 있습니다. 부트스트랩 과정에서 builder의 업그레이드가 수행됩니다. 이 문제는 어제 출시된 bundler 2.2.15 버전과 관련이 있는 것 같습니다. 솔직히 저는 ruby 개발자가 아니므로 실제 문제는 약간 다를 수 있습니다.
그러나 다음 우회 방법이 저에게는 잘 작동했습니다: templates/web.template.yml의 148번째 줄을 - gem update bundler
에서 - gem install bundler -v 2.2.14
로 변경했습니다.
특별한 이유가 있어 stable을 실행하고, 일부 사항(이 문제처럼)에 대해 추가적인 주의를 기울일 의사가 있는 경우가 아니라면, tests-passed를 사용하는 것이 훨씬 좋습니다. tests-passed는 훨씬 더 잘 테스트되어 있으며, Discourse가 호스팅에 사용하는 버전이기도 합니다.
stable을 사용하는 사용자는 더 많은, 아니, 안정성을 기대할 것입니다. 이상적으로는 보안 패치 외에는 거의 다른 변경 사항이 없어야 합니다. 적어도 그것이 우리가 stable 브랜치를 해석하는 방식입니다. 그리고 bleeding edge보다 더 자주 깨질 수 있으므로 stable에서는 더 많은 주의를 기울여야 한다는 의미는 아닙니다.
글쎄요, 이 사례가 보여주듯, 여러분이 기대하는 것보다 그렇게까지는 아닙니다. 그들은 문제를 빠르게 수정하는 데 잘합니다(이 사례처럼요). 하지만 (대부분) 자체 호스팅에는 stable을 사용하지 않기 때문에, tests-passed보다는 테스트가 덜 이루어진 상태입니다. 따라서 새로운 stable 릴리스가 나온 직후를 제외하면, 저는 tests-passed가 다소 “안전한” 선택이라고 생각합니다. 모든 사람이 동의하는 것은 아닙니다.