Yarnエラーで再構築に失敗しました

Ubuntu 22.04 で ./launcher rebuild app を使用してインスタンスをアップグレードする際にエラーが発生しています。私の知る限り、問題はここで始まります。

error /var/www/discourse/app/assets/javascripts/node_modules/discourse: Command failed.
Exit code: 1
Command: yarn --silent --cwd .. patch-package
Arguments: 
Directory: /var/www/discourse/app/assets/javascripts/node_modules/discourse
Output:
error Command "patch-package" not found.
error Command failed with exit code 1.

その上に「_ has unmet peer dependency」という警告がいくつかありますが、これが最初のエラーです(DB セットアップ時の「_ already exists」は除く。これは予期された動作だと理解しています)。

残念ながら、これが最初に発生したアップグレードは、家族旅行に出かける前日だったので、少し急いでおり、その場でトラブルシューティングする時間がありませんでした。しかし、これは一貫して発生しています。ホストは完全に更新されており、セットアップで特にユニークなことをした記憶はありません。約 3 か月前に /var/discourse を別の Digital Ocean ボリュームに配置しました(パフォーマンス上の理由から推奨されない™ことは承知していますが、数十人のユーザーがいるフォーラムにとっては、トレードオフの価値があると考えました)。しかし、その変更後も問題なく動作していました。

「いいね!」 1

それらはすべて警告だと思います。

サイトが復旧しなかった場合は、次を試すことができます。

./launcher start app

./launcher start app を実行したところ、HTTP 502 エラーが発生しました。./launcher logs app を確認すると、以下のログが表示されます。

[Wed 19 Jul 2023 10:18:34 PM UTC] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Wed 19 Jul 2023 10:18:34 PM UTC] Reload error for :
Started runsvdir, PID is 530
ok: run: redis: (pid 542) 0s
ok: run: postgres: (pid 543) 0s
supervisor pid: 538 unicorn pid: 569
Could not find rtlcss-0.2.1, mini_racer-0.8.0, puma-6.3.0, msgpack-1.7.1, libv8-node-18.16.0.0-x86_64-linux in locally installed gems
Run `bundle install` to install missing gems.
config/unicorn_launcher: line 71: kill: (569) - No such process
config/unicorn_launcher: line 15: kill: (569) - No such process
(538) exiting

これはかなりの頻度で繰り返されます。

bundle install を実行しますか?

そのために、コンテナに入らなければなりません。そうして、後でコンテナを起動すると、Webインターフェースに以下のエラーが表示されます。

おっと
このディスカッションフォーラムを動かしているソフトウェアで予期せぬ問題が発生しました。ご迷惑をおかけして申し訳ありません。

エラーに関する詳細情報は記録され、自動通知が生成されました。確認いたします。

それ以上の操作は必要ありません。ただし、エラー状態が続く場合は、エラーを再現する手順を含め、追加の詳細をサイトのフィードバックカテゴリにディスカッションのトピックを投稿することで提供できます。

./launcher logs app を実行すると、以下の出力が得られます。

[Wed 19 Jul 2023 11:52:05 PM UTC] ドメインは変更されていません。
[Wed 19 Jul 2023 11:52:05 PM UTC] スキップ、次の更新時刻は: 2023-08-21T00:34:21Z
[Wed 19 Jul 2023 11:52:05 PM UTC] '--force' を追加して強制的に更新します。
[Wed 19 Jul 2023 11:52:05 PM UTC] キーをインストール中: /shared/ssl/distroleaders.club_ecc.key
[Wed 19 Jul 2023 11:52:05 PM UTC] フルチェーンをインストール中: /shared/ssl/distroleaders.club_ecc.cer
[Wed 19 Jul 2023 11:52:05 PM UTC] リロードコマンドを実行: sv reload nginx
fail: nginx: runsv が実行されていません
[Wed 19 Jul 2023 11:52:05 PM UTC] リロードエラー: :
runsvdir を起動しました。PID は 530 です。
ok: run: redis: (pid 544) 0s
ok: run: postgres: (pid 543) 0s
supervisor pid: 538 unicorn pid: 575

再度コンテナに入ると、sv reload nginx を正常に実行できますが、動作は変わりません。

また、./launcher rebuild app を再実行すると、再度コンテナに入って bundle install を実行し直す必要があります。

他にどこかにエラーがあります。ログ全体を含めてください。

標準以外のプラグインはありますか?

記憶している限りでは(@mattdm が私が見ていない間にこっそり追加したものを除いては :smile:)。discourse-doctor も「非公式プラグインは検出されませんでした」と言っています。

「いいね!」 1

再構築の完全なログのことです。

申し訳ありません。こちらが再構築の出力ですが、お探しのものだったでしょうか?

2行目で全てがわかります

fatal: not a git repository (or any parent up to mount point /var)

/var/discourse ディレクトリが git リポジトリではないため、ランチャーの自動更新や Discourse のブートストラップに使用するツールが機能せず、古い Docker イメージのままになります。

これを壊した変更を元に戻す必要があります。

「いいね!」 3

ファイルをボリュームにコピーした際に.gitをコピーしなかったため、クローンして他のものをコピーする必要があります。

ボリュームにはアップロードのみを含めるようにし、スペースの大部分を占めていると思われるアップロードとバックアップのみをボリュームに含めるようにすることをお勧めします。

「いいね!」 1

ああ、なんてことだ。何をしたのか正確に推測できると思う。rsync コマンドで *.git に一致しないことが原因だ。rsync を使って自分の人生を困難にしたのは初めてではない。見つけてくれてありがとう!

再構築がその時点で終了できない技術的な理由があるのだろうか?トラブルシューティングがもっと簡単になっただろう(ただし、一番上から始めることでもそうだっただろう)。

「いいね!」 2

幸い、長年システム管理スキルをすべて失わずに済んだおかげで、移行前のtarballがまだ残っています。:smile:

これは最小のDigital Oceanドロップレットなので、スペースを占めているのは主にシステムです。アップロードとバックアップを合わせても約100MBです。もし変更を加えるとしたら、ディスク容量の多い、より大きなドロップレットに移行することになると思います。

ご協力いただき、本当にありがとうございます!

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.