TLDR: Discourse の管理パネルで更新ボタンをクリックしたところ、更新が失敗しました。システム全体を再起動して、もう一度更新プロセスを試すことにしました。残念ながら、Discourse の管理パネルが表示されなくなりました。なんとか復旧させたいです。
補足情報: これは WordPress サイトを提供している DigitalOcean VM 上にあります。数年前にセットアップしたので多くの詳細を忘れてしまいましたが、何らかのマジックで Nginx がリクエストされた URL を見て、メインコンテンツには WP を、会話には Discourse を有効にするかどうかを決定します。WP 側はまだ動作しています。
私の紹介で示唆されているような素朴でカジュアルなアプローチを考えると、私がこの悲しい状態に陥ったインストールのエラーの正確な性質を特定できないことは驚くことではないでしょう。更新プロセスを軌道に戻すための手がかりとなるログファイルがどこにあるのかさえわかりません。
何かヒントがあれば大歓迎です。私は Web 管理の知識は経験豊富ではありませんが、Debian ベースのシステムでのコマンドライン操作には慣れています。上記で言及したソフトウェアはすべて Ubuntu 20.04.6 LTS 上で実行されており、関連プラットフォームへの SSH アクセスがあります。よろしくお願いします!
pfaffman
(Jay Pfaffman)
3
試してみてください
cd /var/discourse
./launcher rebuild app
これで解決するかもしれません。それでも解決しない場合は、原因を推測するのは難しいでしょう。
「いいね!」 2
返信ありがとうございます。ジェイの提案に従って、また報告します。(ただし、報告までには数時間かかるかもしれません。まずピザを作って、お客さんに食べさせなければなりません。
「いいね!」 1
残念ながら、私のDigitalOcean VMは小さすぎるようです。新規ログイン後にdu -shと入力すると、割り当てられたディスク/dev/vda1に約7GiBの空き容量があると表示されます。launcher rebuild appコマンドを実行すると、ダウンロードと解凍が大量に行われ、その後スクリプトが中止され、利用可能な容量が3.3Gしかないと表示され、5G以上の空き容量がないと続行を拒否します。
もちろん、余分なものを探し出して削除するためにできる限りのことをしましたが、さらに1.7Gを削除するのは大変な作業です。この状況に対する専門家のアドバイスはありますか?(削除対象の大きなターゲット、またはランチャーに要求を少なくするように依頼する領域のいずれか。)
追伸:あるいは、より強力なマシンでアプリを再構築し、この力不足の小さなVMに適切なファイルをアップロードすることはできますか?それとも、これは過度に不可解なブラックマジックでしょうか?
pangbo
6
コマンド ./launcher cleanup を実行してみてください。この操作は、Docker によって消費されたストレージ領域を削除するのに役立ちます。
さらに、公式のインストールガイドに以前従ったことが確実な場合は、./launcher destroy app を実行して、以前の壊れたコンテナを削除できます。ただし、データベースとアップロードがコンテナ内ではなく、ホストのファイルシステムに保存されていることを確認することが不可欠です。
確かに、別のマシンで再構築を実行し、その後 Docker イメージを VM に転送することは可能です。ただし、VM で rake db:migrate コマンドを手動で実行する必要があります。このアプローチが他の問題を引き起こす可能性があるかどうかは、完全にはわかりません。
「いいね!」 1
より広いスペースを持つ新しいVPSに移行するだけです。
30分ほどかかります。
「いいね!」 2
100%確信はありませんが、試してみたいです。データベースとアップロードを保持するという不可欠な手順をどのように実行できますか?何か深刻なことをする前に、/var/discourse/shared/standalone ディレクトリのファイルを安全な場所にコピーするだけで十分でしょうか?(このような実践的な復旧プロジェクトの標準的な手順へのポインタはありますか?)
@Robert の実用的な応答は、同様の状況にあるほとんどの人にとって最良の選択肢だと思います。私は、私のコンテキストがいくつかの点でユニークであるため、別の方向を取っています。これらのうち、最大のものはこちらです:私のインストールは小規模な趣味のプロジェクトであり、すべてを失うことは残念ですが壊滅的ではありません。
改めて感謝します。
pfaffman
(Jay Pfaffman)
9
共有/スタンドアロンディレクトリにファイルがある場合は、安全です。
WordPressとDiscourseを使用している場合は、おそらく2GB/50GBのVMにアップグレードする必要があります。すべてのバックアップを削除し、ランチャーのクリーンアップを実行した場合は、おそらく十分な容量があります(Googleで検索すればaptキャッシュをクリアすることもできます)。
「いいね!」 1
Frully
10
これが先ほど遭遇した問題と同じかどうかはわかりません。IPジオロケーション変換を行うためにmaxmindのAPIを使用していました。古いバージョンでは、app.ymlファイルにmaxmind APIキーが必要でした。最近の(文書化されていない?)変更により、app.ymlにmaxmind APIキーとユーザー名が必要になりました。ユーザー名がないと、フォーラムの構築に失敗します。
「いいね!」 2
ありがとうございます、@Frullyさん。しかし、これは別の問題だと思います。停止しているエラーメッセージは次のとおりです。
Status: Downloaded newer image for discourse/base:2.0.20230602-0023
docker.io/discourse/base:2.0.20230602-0023
/var/lib/docker があるディスクに 5GB 未満の空き容量しかありません。続行するには、より多くのスペースが必要です。
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 21G 3.5G 86% /
仕事が終わったら、今夜、トラブルシューティングの冒険を続けます。
皆さん、戦術を変更し、@merefield のアイデアに従って、私のセットアップ全体をより大きな VPS に移行することにしました。壊れたセットアップから新しい動作するセットアップにアセットを転送する方法を見つけることは、このアクティビティの挑戦的な部分になるでしょうが、常識的な方法をいくつか試してみて、うまくいかない場合は新しいスレッドを開始します。協力してくれたすべての人に感謝し、このスレッドはこれで閉じても安全だと思います。
「いいね!」 4
エピローグ: 新しいホストへの移行プロセスで、Discourseコンテナ内で直接シェルコマンドを実行することについて役立つことを学びました。これは別のスレッドで説明されています。ディスク容量の節約に関する情報も、その別のスレッドに少し追加されています。
「いいね!」 2