再構築中の問題

Docker 27.0 を使用したプラグイン構成は次のとおりです。

cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/paviliondev/discourse-locations.git

./launcher rebuild app

場所プラグインで次のエラーが発生しています。

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 449 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migra
te'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

アドバイスをお願いします。

どのマイグレーションが失敗したか特定してみてください。

「いいね!」 2

元の投稿で言及したように
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate’ failed with return #<Process::Status: pid 449 exit 1>

ログの上の方には、マイグレーションが完了した際に表示されるので、問題を引き起こしたものを探す必要があります。

「いいね!」 2

oO0OoO0OoO0Oo Redis が起動しています oO0OoO0OoO0Oo
Redis version=7.0.15, bits=64, commit=00000000, modified=0, pid=447, just started
Configuration loaded

  • monotonic clock: POSIX clock_gettime
    Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
    Failed listening on port 6379 (TCP), aborting.

cd /var/www/discourse & & su discourse -c bundle exec rake db:migrate rake aborted!
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 peeraddr=xx.xx.xx.xx:443 state=error: unexpected eof while reading (OpenSSL::S
SL::SSLError)

エラーは locations プラグインの行です。

- git clone https://github.com/paviliondev/discourse-locations

上記の私の行のように、「.git」を削除してください。

https://github.com/paviliondev/discourse-locations

プラグインの GitHub リンクには .git がありません。docker の最初の行には「.git」があります。プラグインは単なるリンクアドレスです。

ログを上にスクロールすると、locations プラグインの行に関連する何らかのエラーが表示されるはずです。あなたが投稿したエラーは私も発生しますが、再構築には影響しません。

これは何も影響しません。どちらも同じ結果になります。

「いいね!」 4

承知いたしました。知りませんでした。インスタンスの app.yml の行を比較していたところ、.git 拡張子が付いているのは docker の行だけであることに気づき、これらのファイルレイアウトがいかにデリケートであるかという警告を思い出しました。

明確化していただきありがとうございます。

「いいね!」 1

もしそれがapp.ymlの1:1のコピーであれば、git-linesは間違った場所から始まります。- はdの下にあるべきです。

cmd:
  - git…
「いいね!」 3

では、URLに.gitが含まれる他のプラグインが正常に動作しているのはなぜか、という質問になります。例えば、カレンダーやニュースのプラグインは、通常のgitコマンドを適用する方法で.gitで正常に動作しました。.gitが違いを生む理由を説明していただけますか?

マイグレーションが失敗し、ポート関連の問題も表示されているのですが、理由がわかりません。

もしあなたが私の質問に対する@supermathieの回答を見たら。私は間違っていました。私は私のapp.ymlセットアップに基づいていました。どうやらどちらのレイアウトでも問題ないようです。

以前に投稿したポートエラーについては心配しないでください。私もそれらを受け取りますが、再構築は正常に行われます。locationsプラグインを削除して再構築し、それでも失敗するかどうかを確認してください。

失敗した場合、最終的な失敗メッセージの上の出力をかなりキャプチャしてください。プラグインのインストール問題、または他の何らかのエラーメッセージがあるはずです。

app.ymlファイルを編集したときに、スペースなどを挿入した可能性があります。変更前にapp.ymlファイルのコンテンツをキャプチャしておくと、失敗した場合に古いものと新しいものを比較できるため、良い習慣です。必要であれば行ごとに比較してください。

私は通常、再構築されるたびにそれを監視しており、再構築に影響を与えないように見える一般的なエラー/警告メッセージに慣れています。

しばらく前にプラグイン関連の失敗がありましたが、私の場合は当時、Chatがコアにマージされたアップデートを見逃していたことが原因でした。

ここで皆が再構築ログファイルの詳細を見て、どこで失敗しているかを特定するのに役立つ必要があります。

失敗した結果が示唆するようにdiscourse-doctorを実行することも役立つかもしれません。しかし、私の経験では、通常は上にスクロールすることが私の最良の選択肢でした。

app.ymlの最後のセクションまたは全体をコピーしてここに貼り付けることもできます。メールプロバイダーの行やmaxmindの情報のような機密情報は必ず編集してください。プラグイン領域を疑っているようですが…$homeからの下のセクションをコピーするだけでも洞察が得られるかもしれません。

「いいね!」 1

この行も確認できます。2番目のVMでもロケーションプラグインのみで同様の問題が発生していることを確認できます。
原因:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 peeraddr=184.104.226.109:443 state=error: unexpected eof while reading (OpenSSL::SSL::SSLError)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:46:in connect_nonblock' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:46:in ssl_socket_connect’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1742:in `connect’

「いいね!」 1

app.ymlからロケーションプラグインを削除して再構築できますか?

ここに記載されていたように、ファイルのインデントを確認しましたか?

「いいね!」 1

場所を除いてすべて正常に動作しています

「いいね!」 2

RobertはまもなくLocationプラグインの問題を確認してくれると思います。最新バージョンのDiscourseで、非推奨の修正に関するPRでエラーに気づき、彼はすぐに確認すると言っていました。

「いいね!」 3

この情報ありがとうございます。解決次第、通知をお待ちしております。

よろしくお願いいたします。

「いいね!」 3

優先度を付けて対応してほしい場合は Marketplace に投稿してください。予算があれば対応します。これは何らかの gem のバージョン/互換性の問題のように見えます。

「いいね!」 4

しかし、先週はDocker 24.0.xに同じプラグインを追加しましたが、動作しました。Docker 27.0.xとの違いはそれだけです。

そのNewsプラグインも壊れています。

「いいね!」 3