ビルドがエラーで失敗しました

しばらくフォーラムは正常に動作していましたが、現在のバージョン 2.8.0.beta7 からアップグレードしようとすると、エラーが表示されました。


I, [2022-05-17T07:29:17.860652 #1]  INFO -- : `cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'`
bundler: failed to load command: rake (/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/rake)
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/runtime.rb:309:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.11.0. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/runtime.rb:25:in `block in setup'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/spec_set.rb:136:in `each'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/spec_set.rb:136:in `each'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/runtime.rb:24:in `map'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/runtime.rb:24:in `setup'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler.rb:151:in `setup'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/setup.rb:20:in `block in <top (required)>'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/ui/shell.rb:136:in `with_level'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/ui/shell.rb:88:in `silence'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/setup.rb:20:in `<top (required)>'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:56:in `require_relative'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:56:in `kernel_load'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:23:in `run'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli.rb:483:in `exec'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli.rb:31:in `dispatch'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli.rb:25:in `start'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/exe/bundle:48:in `block in <top (required)>'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/exe/bundle:36:in `<top (required)>'
        from /usr/local/bin/bundle:23:in `load'
        from /usr/local/bin/bundle:23:in `<main>'
I, [2022-05-17T07:29:18.139287 #1]  INFO -- :

依存関係のあるgemに不整合がある理由がわかりません。

実行したことは以下の通りです。

  1. サーバーにログインし、github pull を実行しました。
  2. ./launcher rebuild app を実行しました。
    2.1 プラグインは docker-manager 以外にありませんでした。
  3. 何度か試しましたが、./discourse-docter も実行しましたが、同じエラーが表示されました。
  4. データはコンテナ data に保存されています。

サイトがオフラインのため、助けてください :frowning:

データコンテナを再構築してから、Webコンテナを再構築してみてください。

返信ありがとうございます。

データコンテナを再構築してみましたが、同じエラーが発生します。

  ./launcher start app

\n\nでフォーラムを再起動できるか確認してください

申し訳ありませんが、アプリコンテナがないため、それは機能しません。

しかし、バージョンを tests-passed から stable に変更したところ、すべてのgemをインストールできるようになりました。フォーラムも再びオンラインになりました。違いが何であるか、そしてなぜそうなるのかはわかりません。

「いいね!」 1

それなら、コンテナ名を使用すべきでした。

    ./launcher start web_only

しかし、あなたの解決策はうまくいきました!

すみません、私が言いたかったのは、ymlファイルをdata.ymlに設定したということです。そのため、
./launcher start data
となる可能性があります。
しかし、ビルド中にエラーが発生し、Dockerコンテナをビルドできませんでした。そのため、上記のCLIで開始できるとは思えません。

いずれにしても、同様の状況を見たことがある方や、解決策を見つけた方がいらっしゃいましたら、ここに共有してください。
よろしくお願いします。

app.yml のプラグインリストを共有してください。最新の Discourse と競合するプラグインがあります。

「いいね!」 1

しかし、試していませんか?再構築が失敗した場合、通常は古い/既存のコンテナを再起動できます。

これは理解するのが難しいです。

プラグインの問題のようですが、彼は次のように述べています。

しかし、

したがって、彼はオンラインに戻ったようです。

「いいね!」 2

おっしゃる通り、./launcher start app は古いコンテナを起動します。

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

これが私の唯一のプラグインです。

再度試しましたが、このプラグインのみの場合、バージョンを tests-passed に変更すると上記のエラーで失敗することが確認できました。しかし、stable に変更すると正常に動作します。

実際、バージョン stable のプラグインを複数追加しても、アプリをビルドすることはできました。そのため、私のケースではプラグインの問題ではないと考えています。