再構築中に予期せぬエラーが発生し、アップデートに失敗しました

皆さん、こんにちは。

Discourseのアップデートで問題が発生しています。rebuildコマンドが失敗し、アップデートを完了できません。bundle installのステップに関連しているようです…

FAILED
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4' failed with return #<Process::Status: pid 6677 exit 5>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle config --local deployment true'", "su discourse -c 'bundle install --retry 3 --jobs 4'"]}
d5f6cd1fd76403647c95480f36207ae014cd548ec8eb9914fdf280998b5597d
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
bootstrap failed with exit code 5

しかし、どう修正すればよいかわかりません。何かアドバイスはありますか?

ご指摘いただけると幸いです!

ログ全体(または少なくともそれ以前のエラー)を投稿してください。その一部だけではほとんど意味がありません。

「いいね!」 1

ディスコースフォーマットツールバーなしで試してみてはどうでしょうか。

はい、他のプラグインと一緒に削除しましたが、残念ながら問題は解決しません。

ほとんどすべてのプラグインを削除した後、./discourse-doctor を実行した最新の出力を追加しましたが、問題は残っています。テンプレートの一部を削除することも検討すべきでしょうか、それともエラーは別の場所にあるのでしょうか。更新を試みるまで、すべて正常に機能していましたが、現在はサイトがダウンしています。問題の解明に役立つ可能性のある ./discourse-doctor の出力からの追加テキストは次のとおりです。

2023-12-14 22:38:53.291 UTC [42] LOG: データベースシステムはシャットダウンされています
11:14 Mi Dec 2023 22:38:53.536 +0000 ディスクに保存
11:14 Mi Dec 2023 22:38:53.346 # Redis は終了する準備ができました。さようなら...

失敗
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --retry 3 --jobs 4' がリターン #<Process::Status: pid 518 exit 5> で失敗しました
失敗場所: /usr/local/lib/ruby/gems/2.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec はパラメータ {\"cd\"=>\"$home\", \"hook\"=>\"bundle_exec\", \"cmd\"=>[\"su discourse -c 'bundle config --local deployment true'\", \"su discourse -c 'bundle config --local without \\\"development test\\\"'\", \"su discourse -c 'bundle install --retry 3 --jobs 4' \"]} で失敗しました
** ブートストラップに失敗しました ** 上にスクロールして、以前のエラーメッセージを探してください。複数ある可能性があります。
./discourse-doctor が問題を診断するのに役立つ場合があります。
0cbe5f54cc4be6fd4475fdad523d75c5cd36cded997f6b3cab34e4e908896
==================== 再構築ログ終了 ====================
アプリの再構築に失敗しました。

ドメイン名の確認中...
forospyware.com への接続に成功しました。
非標準のプラグインをすべて削除して再構築することをお勧めします。
既存のコンテナの再起動を試行中...
x86_64 アーキテクチャが検出されました。

既存のコンテナを起動中
+ /usr/bin/docker start app
デーモンからのエラー応答: コンテナ app (1a8bb1f1f3267284b55ed1620db877010454d9932112d71de80bac3e5ff7d7) の外部接続のプログラミングに失敗しました: Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
エラー: コンテナの起動に失敗しました: app
コンテナの再起動に失敗しました。

==================== プラグイン ====================
- git clone https://github.com/discourse/docker_manager.git
非公式プラグインは検出されませんでした。

公式リストについては、https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb を参照してください。

==================== DISCOURSE バージョン ====================
forospyware.com の Discourse バージョン: 見つかりません
localhost の Discourse バージョン: 見つかりません

==================== メモリ情報 ====================
RAM (MB): 8174

合計 使用中 空き 共有 バフ/キャッシュ 利用可能
Mem: 7983 195 4275 80 3512 7326
Swap: 0 0 0

==================== ディスクスペースチェック ====================
-- OS ディスクスペース
ファイルシステム サイズ 使用中 利用可能 使用率 マウントポイント
/dev/vda1 155G 107G 49G 69% /

==================== ディスク情報 ====================
ディスク /dev/vda: 160 GiB, 171798691840 バイト、335544320 セクター
単位: セクター 1 * 512 = 512 バイト
セクターサイズ (論理/物理): 512 バイト / 512 バイト
I/O サイズ (最小/最適): 512 バイト / 512 バイト
ディスクラベルタイプ: gpt
ディスク識別子: 603625F3-7AE2-40CB-B05E-08D7EAD257E4

デバイス 開始 終了 セクター サイズ タイプ
/dev/vda1 227328 335544286 335316959 159.9G Linux ファイルシステム
/dev/vda14 2048 10239 8192 4M BIOS ブート
/dev/vda15 10240 227327 217088 106M Microsoft 基本データ

パーティションテーブルエントリはディスク順ではありません。
==================== ディスク情報終了 ====================

==================== メールテスト ====================
堅牢なテストを行うには、http://www.mail-tester.com/ からアドレスを取得してください。
または、自分宛にテストメッセージを送信するだけです。
メールテスト用アドレス? ('n' でスキップ) [ ]: n
メールテストはスキップされました。
置換中: SMTP_PASSWORD
置換中: LETSENCRYPT_ACCOUNT_EMAIL
置換中: DEVELOPER_EMAILS
置換中: DISCOURSE_DB_PASSWORD
置換中: Sending mail to

==================== 完了! ====================
このスクリプトの出力を確認できます
LESS=-Ri less /tmp/discourse-debug.txt
ただし、まず、以下の最初の 3 つのコマンドを確実に知っておいてください!!!

上記のコマンド('less' と呼ばれる)を使用してファイルを表示する際に知っておくべきコマンド:
q -- 終了
/ -- 'error' という単語を検索
n -- 次の出現箇所を検索
N -- 前の出現箇所へ移動

bundle install の行が含まれるビルドログの最初の部分を共有する必要があります。

これはこの部分のことですか? - すみません、DigitalOceanコンソールでコード全体を移動して確認するのは非常に困難です。

ログを確認して、エラーがある箇所を教えていただけますか? 最後のエラーだけではないはずです。

もしそれが面倒であれば、ログ全体を提供していただいても構いません。

これが致命的なエラーのようです。

I, [2023-12-14T22:38:19.544278 #1]  INFO -- : > cd /var/www/discourse &amp;&amp; su discourse -c 'bundle install --retry 3 --jobs 4'
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext
/usr/local/bin/ruby extconf.rb
  -- tar zxvfo msgpack-1.1.0.tar.gz
  -- env CFLAGS=nil LDFLAGS=nil CC=nil
-- ./configure --disable-dependency-tracking --disable-shared --with-pic
--prefix=/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext/dst/
--libdir=/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext/dst/lib
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/usr/local/bin/$(RUBY_BASE_NAME)
extconf.rb:6:in `sys': ./configure --disable-dependency-tracking
--disable-shared --with-pic
--prefix=/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext/dst/
--libdir=/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext/dst/lib
failed, please report to https://github.com/tmm1/rbtrace/issues (RuntimeError)
	from extconf.rb:42:in `block (2 levels) in &lt;main&gt;'
	from extconf.rb:34:in `chdir'
	from extconf.rb:34:in `block in &lt;main&gt;'
	from extconf.rb:30:in `chdir'
	from extconf.rb:30:in `&lt;main&gt;'

To see why this extension failed to compile, please check the mkmf.log which can
be found here:

/var/www/discourse/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/rbtrace-0.5.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0 for inspection.
Results logged to
/var/www/discourse/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/rbtrace-0.5.0/gem_make.out

  /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:120:in `run'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/ext_conf_builder.rb:28:in
`build'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:188:in
`build_extension'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:222:in `block in
build_extensions'
  /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:219:in `each'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:219:in
`build_extensions'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/installer.rb:844:in
`build_extensions'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/rubygems_gem_installer.rb:72:in
`build_extensions'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/rubygems_gem_installer.rb:28:in
`install'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/source/rubygems.rb:198:in
`install'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/installer/gem_installer.rb:54:in
`install'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/installer/gem_installer.rb:16:in
`install_from_spec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/installer/parallel_installer.rb:156:in
`do_install'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/installer/parallel_installer.rb:147:in
`block in worker_pool'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:62:in
`apply_func'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:57:in
`block in process_queue'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:54:in
`loop'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:54:in
`process_queue'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:90:in
`block (2 levels) in create_threads'

An error occurred while installing rbtrace (0.5.0), and Bundler cannot continue.

ログファイルを提供していただけますか? (/var/www/discourse/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/rbtrace-0.5.0/mkmf.log)

ジェイも同じ問題を抱えていました Rebuild failure: "extconf failed, exit code 1" -- due to old Docker? が、最終的に問題を解決できたかはわかりません。

@TroyaNO 念のため、./launcher rebuild app を再度試す前に git pull と入力してみてください。

「いいね!」 1

古いDockerだと判断しましたが、あまり意味がありませんでした。

しかし、このVMは2018年から変わっておらず、OSが古くなっているのでしょう。

そこで、新しいドロップレットを起動し、Discourseサイトを別のVPSにrsyncで移行するのが良いでしょう。

「いいね!」 1