ajmuir
1
今日は「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 イメージを実行していると表示されます)。
ご助言をいただければ幸いです。
pfaffman
(Jay Pfaffman)
2
ビルドの出力を確認しないと、何とも言えません。
tmux(または同様のツール)を使用して、接続が切れてもセッションを維持してみてください(tmux attach でセッションに再接続できます)。
PostgreSQL 13 アップデートも参照してみてください。
ajmuir
3
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のインストールガイドのコマンドを実行できます。