テーマエラーによる「./discourse rebuild app」のエラー

何が起こったのかはっきりしませんが、今日 ./discourse rebuild app コマンドを実行しようとすると、アップデートに失敗し、フォーラムがダウンしてしまいました。以前このようなことはありませんでした。ご支援ください。

root@huey:/var/discourse# ./launcher rebuild app
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && git checkout v1.0.3 && /pups/bin/pups --stdin
Already up to date.
Note: checking out 'v1.0.3'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD アップデートにエラーが発生しました

```ruby
api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

修正にご協力ください。I, [2021-11-26T06:52:47.426522 #1] INFO – : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} +
I, [2021-11-26T06:52:53.805479 #1] INFO – :
I, [2021-11-26T06:52:53.806274 #1] INFO – : > cd /var/www/discourse && su discourse -c ‘bundle install --deployment --retry 3 --jobs 4 --verbose --without test development’
[非推奨] --deployment フラグは非推奨です。これは bundler の呼び出し間で記憶されることを前提としていますが、将来のバージョンでは bundler がこれを行わなくなります。代わりに bundle config set --local deployment 'true' を使用し、このフラグの使用を中止してください。
[非推奨] --without フラグは非推奨です。これは bundler の呼び出し間で記憶されることを前提としていますが、将来のバージョンでは bundler がこれを行わなくなります。

代替ロゴテーマコンポーネントに問題があるようです。

他の人もここで同様の問題に遭遇しました。

./launcher start app を実行し、管理者設定からテーマコンポーネントを削除してから、再度更新を試すことができるかもしれません。ただし、他のトピックの OP は最終的に新規インストールを構築し、バックアップを復元する必要がありました。

運がありませんでした。コマンド ./launcher start app または ./launcher enter app を使用してアプリを入力または起動できませんでした。

このエラーが発生します。

ローカルにイメージ 'local_discourse/app:latest' が見つかりません

docker: daemonからのエラー応答: local_discourse/app のプルアクセスが拒否されました。リポジトリが存在しないか、'docker login' が必要になる場合があります: 要求されたリソースへのアクセスが拒否されました。

'docker run --help' を参照してください。

申し訳ありませんが、アプリに入れないため、最初の投稿は役に立ちませんでした。

解決策は、クリーンな再インストールと、バックアップがあればそれを復元することのようです。

古すぎる場合は、まずいくつかのことを試すことをお勧めします。

service docker restart
systemctl restart docker
cd /var/discourse
./launcher destroy app
./launcher start app

しかし、Dockerの問題が発生することはめったにありませんでしたが、再インストールを選択しました。これは難しい場合があります。

クリーンアップを実行しましたか?(ただし、古いコンテナを起動できない理由は大した問題ではありません。)

再構築時に壊れたテーマを無効にする方法があるはずです。この問題に注意を促すために、あなたの件名を変更しました。

Postgresのみのコンテナを構築し、SQLでテーマを削除してから、Webテンプレートを元に戻して再構築するという方法が可能かもしれません。

以下の手順を実行することで、この問題を解決できました。

  • containers/app.yml を編集し、postgres テンプレートサービス以外のすべてをコメントアウトします。
  • ./launcher rebuild app を実行し、次に ./launcher enter app を実行します。
  • コンテナに入ったら、su - postgres で postgres ユーザーになり、psql を実行します。
  • postgres に入ったら、\\c discourse を実行し、次に SELECT * FROM themes を実行して、ID が 11 の問題のある Alternative Logo テーマを見つけます。次に、DELETE FROM themes WHERE id=11 で削除し、\\q でコンソールを終了します。
  • exit でコンテナを終了し、containers/app.yaml のすべてのテンプレートのコメントを解除して、再度再構築します。