Discourse_docker: сбой инициализации лаунчера (включено обходное решение)

Запуск нового образа контейнера завершается ошибкой. Несколько дней назад всё работало, «ничего не менялось», а сегодня не получается. Лог:

[0:02:27] Всё ещё выполняется:
[0:02:27]   v8
________ запуск 'vpython third_party/depot_tools/update_depot_tools_toggle.py
--disable' в
'/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:
не удалось разрешить опции: не удалось выполнить скрипт Python: 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:
файл или каталог не найден
Ошибка: команда 'vpython third_party/depot_tools/update_depot_tools_toggle.py
--disable' завершилась с ненулевым кодом выхода 1 в
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/libv8-8.4.255.0/vendor

...

** НЕ УДАЛОСЬ ЗАПУСТИТЬ ** пожалуйста, прокрутите вверх и найдите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь в диагностике проблемы.

При более детальном изучении: для libv8 уже сообщалось о похожей проблеме на GitHub, связанной с изменением версии сборщика Ruby. Во время начальной настройки выполняется обновление сборщика. Мне кажется, проблема связана с версией bundler 2.2.15 (выпущенной вчера). Честно говоря, я не специалист по Ruby, поэтому, возможно, реальная причина немного иная.

Тем не менее, следующий обходной путь сработал у меня: измените строку 148 в шаблоне templates/web.template.yml с
- gem update bundler
на
- gem install bundler -v 2.2.14

С наилучшими пожеланиями,

Михаил

Это было при попытке сборки в стабильной ветке?

Отличная идея! Ветка master из discourse_docker, параметры: version: stable в app.yml

Если у вас нет причины запускать stable и вы не готовы уделять особое внимание некоторым вещам (например, этой проблеме), то вам лучше использовать tests-passed. Эта версия гораздо лучше протестирована и используется Discourse для своего хостинга.

Это определенно стоит отладить. Если bundler только что выпустил ошибку, нам нужно быстро найти обходной путь.

@kris.kotlarek, ты можешь воспроизвести проблему на Digital Ocean?

Здесь задействовано несколько проблем. На данный момент наиболее гладким решением является обновление версии Gemfile в стабильной ветке. Подробнее см. в сообщении коммита:

@m.abi, пожалуйста, попробуйте собрать заново — теперь всё должно работать.

Я ожидаю, что версия на stable будет обеспечивать большую, э-э, стабильность — в идеале только исправления безопасности и ничего лишнего. По крайней мере, так мы интерпретируем ветку stable. И вовсе не нужно уделять stable больше внимания, потому что она может ломаться чаще, чем bleeding edge.

Что ж, как показывает этот случай, всё не совсем так, как вы могли ожидать. Они хорошо справляются с быстрым исправлением проблем (как в этом случае), но они (в основном?) не размещают stable на своём хостинге, поэтому она тестируется несколько хуже, чем tests-passed. Следовательно, за исключением момента сразу после выхода нового релиза stable, я считаю tests-passed несколько более «безопасным» выбором. Не все согласны с этим мнением.

@david Сборка работает! Спасибо!