コンテナの停止を試みると再構築がフリーズする

今日は「Discourse イメージのバージョンが古いです。最新のイメージを実行するまで、Web UI 経由でのアップグレードは無効化されています」というメッセージが初めて表示され、インストールが壊れてしまったと考えています。

ホスティングプロバイダーが root ユーザーの作成を許可していないため、各コマンドを sudo で実行するという指示に従いました。

cd /var/discourse
sudo git pull
sudo ./launcher rebuild app

競合に関するエラーが発生したため、pull の前に sudo git stash を再実行する必要がありました。

すべて順調に進んでいるように見えました(1 時間以上放置しましたが)、その後、ターミナルセッションが切断されました(broken pipe エラー)。これを回避するため、サーバーで ClientAliveInterval を 60 に設定し(これはコメントアウトされていました)、再起動して再度試みました。

現在、ビルドスクリプトを実行すると、Docker コンテナを停止する段階でクラッシュします。

これを回避するために、ビルドスクリプトを実行する前に docker kill <id> を実行してみましたが、同じクラッシュが発生します(CPU が約 15 分間 100% で稼働し、その後数時間何も起こらない状態になります)。

サイトを再起動すると、まだ起動はしますが、更新することができません(UI アップデータは依然として古い Discourse イメージを実行していると表示されます)。

ご助言をいただければ幸いです。

ビルドの出力を確認しないと、何とも言えません。

tmux(または同様のツール)を使用して、接続が切れてもセッションを維持してみてください(tmux attach でセッションに再接続できます)。

PostgreSQL 13 アップデートも参照してみてください。

Jay さん、ありがとうございます。問題の原因が見つかったようです。

私の VPS プロバイダーである webdock.io(実は非常に優れています)は、ホストレベルで ZFS を使用しているため、ZFS をサポートしていません。ネストされた ZFS は使用不可とアドバイスされています。また、overlay2 も推奨されておらず、デフォルトでは存在しない vfs ストレージドライバーを含めるために launcher ファイルを編集するよう提案されました。

171 行目:Storage Driver: (vfs|aufs|zfs|overlay2)

sudo git pull がこれを上書きし、その後、誤ったストレージドライバーで再構築を試みたのではないかと推測しています。

すべてをロールバックし、その後 launcher を再度編集してから rebuild app を実行したところ、すべて正常に動作するようになりました。

cd /var/discourse
sudo git stash
sudo git pull
sudo nano launcher
171 行目を編集して **vfs** を追加

sudo ./launcher rebuild app

@ajmuir

問題が1年以上前に解決されたことは承知しておりますが、この議論に私の意見を加えたいと思います。また、このスレッドを見つけた新規ユーザーが正しい方向へ進めるようにしたいと考えております。

Webdock(現時点)では、Dockerストレージドライバーとしてfuse-overlayfsの使用を推奨しています: How to change the Docker storage driver – Webdock

その理由は、vfsはディスク容量の使用率が高くなるためです。

しかし、Dockerでfuse-overlayfsを使用すると、推奨されないドライバーであるため、Discourseランチャー側で警告またはエラーが発生します。

私のブログの投稿に、この問題を解決するための詳細な手順を記載しています: Deploying Discourse on a Webdock server

インストール済みのドライバーをegrepステートメントに追加する方法で、あなたが実行した方法で行うこともできます。

また、Webdockではrootユーザーの作成が許可されていないとおっしゃっていますが、なぜでしょうか?

sudo suでrootに切り替えるだけで、その後Discourseのインストールガイドのコマンドを実行できます。