A inicialização de uma nova imagem de contêiner falhou. Alguns dias atrás funcionava, “nada mudou”, mas hoje falha. Log:
[0:02:27] Ainda trabalhando em:
[0:02:27] v8
________ executando 'vpython third_party/depot_tools/update_depot_tools_toggle.py
--disable' em
'/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:
não foi possível resolver as opções: falha ao resolver o script 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:
arquivo ou diretório não encontrado
Erro: O comando 'vpython third_party/depot_tools/update_depot_tools_toggle.py
--disable' retornou um status de saída diferente de zero (1) em
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/libv8-8.4.255.0/vendor
...
** FALHA NA INICIALIZAÇÃO ** Por favor, role para cima e procure mensagens de erro anteriores; pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.
Investigando o problema: Para o libv8, já existe um problema semelhante relatado no GitHub, relacionado a uma mudança de versão no construtor Ruby. Durante a inicialização, uma atualização do construtor é realizada. Acredito que o problema pareça estar relacionado à versão 2.2.15 do bundler (lançada ontem). Para ser honesto: não sou especialista em Ruby, então talvez o problema real seja ligeiramente diferente.
No entanto, a seguinte solução alternativa funcionou para mim: Altere a linha 148 em templates/web.template.yml de - gem update bundler
para - gem install bundler -v 2.2.14
A menos que você tenha um motivo para usar stable e esteja disposto a prestar mais atenção a alguns detalhes (como este problema), você estará melhor com tests-passed, que é muito mais testado e é o que o Discourse usa para sua hospedagem.
Há várias questões em jogo aqui. Por enquanto, a solução mais suave é atualizar a versão do Gemfile na branch stable. Veja a mensagem do commit para mais detalhes:
@m.abi, por favor, tente reconstruir novamente — deve funcionar agora.
Espero que quem use a versão stable tenha, bem, mais estabilidade — idealmente apenas correções de segurança e pouco mais. Pelo menos, essa é a nossa interpretação da branch stable. E não é que seja necessário prestar mais atenção na versão stable porque ela possa quebrar com mais frequência do que a versão de ponta (bleeding edge).
Bem, como este caso mostra, a situação é um pouco menos assim do que você poderia esperar. Eles fazem um bom trabalho ao corrigir as coisas rapidamente (como neste caso), mas eles (principalmente?) não hospedam a versão stable em seu próprio servidor, então ela é um pouco menos testada do que a tests-passed. Portanto, exceto logo após o lançamento de uma nova versão stable, considero a tests-passed uma opção um pouco “mais segura”. Nem todos concordam.