こんにちは。
最近、Docker Discourse がインストールされているサーバーイメージを移行しました。
すべてを起動できますが、SSL 証明書を再発行する必要があります。
古いサーバーには SSL が構成されていたため、このガイド の提案に従って ./launcher rebuild app を実行しています。
これにより、Docker は多くのものをプルして更新します。現在のイメージは Discourse 2.6.0.beta3 - https://github.com/discourse/discourse version 29f7e0689f61c5d85960a88f741ac3abced12d3e です。
初めて実行したときに Postgres アップグレードのメッセージが表示されたため、指示に従って再度 ./launcher rebuild app を実行しました。
今では、Ruby のバージョンが不足しているというエラーのため、毎回失敗し続けていると思われます。
ERROR: Error installing bundler:
bundler-2.5.3 requires Ruby version >= 3.0.0. The current ruby version is 2.7.2.137.
以下は完全な出力です。
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock) failed with return #<Process::Status: pid 304 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,\\\"\\\"); print $0 }' Gemfile.lock)", "find $home ! -user discourse -exec chown discourse {} \\+"]}
2ad07f29ace1b5396d9944fc4fc5a1ec712727280e8bb3df760367d08bfe6a25
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
Docker は必要に応じて Ruby のバージョンを更新すると思っていました。
コンテナに手動でログインし、RVM をインストールして Ruby v3+ をアクティブ化しましたが、同じエラーが引き続き発生します。
この段階で少し途方に暮れています。インストールされているバージョンが ./launcher でアップグレードするには古すぎるのでしょうか?
どのようなアドバイスでもいただけると幸いです。
Firepup650
(Firepup Sixfifty)
2024 年 5 月 14 日午後 8:14
2
robobobo:
ここに完全なエラーがあります
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /, ""); print $0 }' Gemfile.lock) failed with return #<Process::Status: pid 304 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,\\\"\\\"); print $0 }' Gemfile.lock)", "find $home ! -user discourse -exec chown discourse {} \\+"]}
2ad07f29ace1b5396d9944fc4fc5a1ec712727280e8bb3df760367d08bfe6a25
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
これはエラーではありません。実際のエラーはさらに上にあります。
「いいね!」 2
pfaffman
(Jay Pfaffman)
2024 年 5 月 15 日午前 6:07
3
新しいイメージから始めて、標準的なインストールを実行することをお勧めします。
「いいね!」 1
ジェイ、ありがとう。それが唯一の解決策かもしれないと恐れていました。
データベースをコピーする方法を見つけて、すべてを失わないようにしなければならないと思います。
RBoy
(RBoy)
2024 年 5 月 17 日午前 12:27
5
apt upgrade を使用してすべてのパッケージを更新してみてください
pfaffman
(Jay Pfaffman)
2024 年 5 月 17 日午前 5:43
6
難しくありません。バックアップを作成するか、rsync を使用して Discourse サイトを別の VPS に移動する ことができます。既存のサイトはそのまま残るので、失うものは何もありません。これが最も安全な方法です。
「いいね!」 1
サーバーのUbuntuバージョンを更新し、ruby v3.1が実行されていることを確認するなど、可能な限りすべてを更新しました。
問題は、dockerによって制御されているコンテナに必要なRubyのバージョンが原因だと疑っていますが、それを更新する方法がわかりません。
クリーンなバージョンをインストールして 3.3.0.beta3-dev を稼働させることはできましたが、古いサイトのバックアップを復元したところ、正しく復元されていないようで、ログインページが機能しなくなりました。JSコンソールを見ると、ログイン/サインアップボタンをクリックするたびに Discourse is not defined というエラーが表示されます。バージョンに大きな違いがあるため、2.6.0 のバックアップをクリーンな 3.3.0 インストールに単純に復元することはできないと思います。
新しいサーバーにすべてを移行しようとしても、この Ruby エラーが毎回ブロックするため ./launcher rebuild app を実行できないため、うまくいきません。
pfaffman
(Jay Pfaffman)
2024 年 5 月 21 日午後 12:05
9
それほど大きなアップグレードを実行している場合、テーマが壊れている可能性が高いです。セーフモードを試してください。
「いいね!」 3
robobobo:
クリーンな 3.3.0 インストール
厳密には、まだ 3.3.0 は存在しません。まだベータ版の途中です。
「いいね!」 1
情報ありがとうございます。残念ながら、/safe-mode にアクセスしようとすると、/login URL にリダイレクトされてしまいます。
再インストールして最初からやり直してみます。
公式のディスコースイメージを使用しましたが、それがベータ版であっても最新バージョンをインストールするだけだと思います。それとも、安定版または特定のバージョンを指定する方法はありますか?
RBoy
(RBoy)
2024 年 5 月 21 日午後 8:22
14
はい、できます。Discourse をビルドする前に app.yml を新規インストールで編集してください(ダウングレードはできないため)。GitHub からタグを選択してください。以前、最新バージョンにアップグレードする前に古いバージョンに復元する必要があったときに、この作業を行いました。
Checkout the same version of discourse_docker that you use on your other server, maybe copy your app.yml from the old server and make the necessary changes. Also in app.yml, change the version from tests-passed to either a tag (e.g. v2.5.0.beta7) or use a git commit hash.
今は、何か問題が発生した場合に備えて、動作中のバージョンのイメージを作成してからアップグレードしています。
ありがとうございます。助かりました!
良いニュースとしては、app.yml ファイルを変更して、古いバージョンの discourse_docker と同じバージョンの Discourse をインストールする方法を見つけました。
悪いニュースは、インストールの終盤で別のエラーが発生したことです。
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 14351 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
もう少し詳しく調べる必要があります。コンテナ自体の Ruby/Rails に関連する問題のようです。
RGJ
(Richard - Communiteq)
2024 年 5 月 22 日午後 10:21
16
https://forum.example.com/login?safe_mode=no_themes%2Cno_plugins を試してください。
「いいね!」 2