CLIから非推奨のテーマコンポーネントを削除できません - ブートストラップに失敗しました

これは「Alternative Logos」が原因であることを知っています:

I, [2021-06-25T11:00:32.360020 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Alternative Logos の更新に失敗しました
about.json に無効な値が含まれています: 最大 Discourse バージョンが無効です
/var/www/discourse/app/models/remote_theme.rb:169:in `update_from_remote'
/var/www/discourse/lib/tasks/themes.rake:61:in `block (2 levels) in <main>'

以前はこのコンポーネントを使用していました。しかし、Discourse がダウンしているため管理パネルにアクセスできず、削除できません。コマンドラインからこのテーマコンポーネントを削除するにはどうすればよいですか?

停止中のコンテナに対して cleanup が何を行うか確信はありませんが、単に ./launcher start app を実行し、問題の原因となっているものを無効にする(https://your.domain/admin/customize/themes で)のはどうでしょうか?

app.yml 内のプラグインのことをおっしゃっているのでしょうか?

はい、その通りです。

「Alternative Logos」が原因であることはわかっています:

I, [2021-06-25T11:00:32.360020 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Alternative Logos の更新に失敗しました
about.json に無効な値が含まれています:最大 Discourse バージョンが無効です
/var/www/discourse/app/models/remote_theme.rb:169:in `update_from_remote'
/var/www/discourse/lib/tasks/themes.rake:61:in `block (2 levels) in <main>'

このコンポーネントは以前入れていましたが、Discourse がダウンしているため管理パネルにアクセスできず削除できません。コマンドラインからこのテーマコンポーネントを削除するにはどうすればよいでしょうか?アプリを再構築したり起動したりできないため、困っています。

つまり:

  • Alternative Logos の about.json に記載されている最大バージョンが私の環境より高いため、再ビルドできません
  • アプリを起動せずに Alternative Logos コンポーネントを削除できません
  • アプリを起動できないため、再ビルドもできません

何か対処法はありませんか?Alternative Logos コンポーネントを削除したいのです。

アプリを再構築せず、ただ起動することはできませんか?

./launcher start app

ローカルに 'local_discourse/app:latest' というイメージが見つかりません
docker: デーモンからのエラー応答: local_discourse/app へのプルアクセスが拒否されました。リポジトリが存在しないか、'docker login' が必要かもしれません: 拒否されました。リソースへのアクセス要求が拒否されました。
詳細は 'docker run --help' を参照してください。

残念ながら、そうではありません。

それなら git pull かもしれませんが、援軍を待つほうがいいかもね :sweat_smile:(ジェイが返信しているようです…)

いいえ、git pull は何も実行しません。

./launcher start app

を試しましたか?ただし、古いコンテナが停止している間に ./launcher cleanup を実行し、起動可能なコンテナがない場合は、かなり困ったことになります。それをやったのでしょうか? やったようです。

不良なテーマコンポーネントがアップグレードを不可能にするのはバグだと思いますので、おそらく何らかの解決策が提示されるでしょう。

データベースを修正してテーマコンポーネントを削除することも考えられますが、データベースにアクセスできる実行中のコンテナがない場合、どのようにすればよいのかよくわかりません。

私の知る緊急かつ即時の解決策は、既存のデータベースをクリーンなインストールに復元できるかどうかを確認することです。

クリーンなインストールにデータベースを復元する(壊れたテーマを無視してくれるかもしれません)、その後データベースを削除してアップグレード済みの Discourse で新しい空のデータベースを再構築し、リモートのクリーンなインストールからデータベースを復元するという手順も考えられます。

別の解決策としては、データベース専用のイメージを作成し、SQL を使用して壊れたテーマコンポーネントを削除する方法もあります。

「いいね!」 2

どうやら新規インストールをして、バックアップから復元するしかないようです(この .sql バックアップファイル内で、代替ロゴに関する変更を加える予定です)。

ただ、コンポーネントが破損して Discourse の再構築ができなくなった場合、新規インストール以外に選択肢がないという状況は本当に困ったものです。

「いいね!」 2

はい、解決策は新しい Discourse インストールをセットアップし、バックアップから復元してから、問題を引き起こしていたコンポーネントを削除することでした。

「いいね!」 3

今朝も同様の状況に遭遇しましたが、アプリを再起動することで解決できました。

私のサイトには約10のテーマがあり、すべてのテーマでカラーリングに合わせた異なる色のロゴを使用するため、「代替ロゴコンポーネント」を活用しています。現在はサイト設定でダークテーマ用のロゴを入力できるようになりましたが、この非推奨コンポーネントを削除した場合、他のテーマのカスタムロゴはどこに追加すればよいのでしょうか?

問題は about.json ファイルだけにあると思います。テーマコンポーネントをフォークして、自分用のバージョンを作成することも可能です。ただし、私は詳しく確認も、実際に試したこともありません。

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