設定ファイル containers/app.yml は既に存在します!5秒後に既存コンテナを停止、またはキャンセルするには Control-C。

VMにssh接続すると、すぐに以下のメッセージが表示されました。

設定ファイル containers/app.yml が既に存在します!
古いファイルを app.yml.2024-12-25-193919.bak として保存しています
既存のコンテナを5秒後に停止します。キャンセルするには Control-C を押してください。

何をやろうとしているのか分かりません。

Right Sidebar Blocks をインストールしなければよかったのですが、この問題がそれに関連しているかは分かりません。https://meta.discourse.org/t/issues-when-i-enable-component-maybe-right-sidebar-blocks/343964/13

アプリの再構築を行ったところ、これが役立つと思いましたが、VMにログインするたびに以下のメッセージが表示されます。

設定ファイル containers/app.yml が既に存在します!
古いファイルを app.yml.2024-12-25-xxxxxx.bak として保存しています
既存のコンテナを5秒後に停止します。キャンセルするには Control-C を押してください。

キャンセルしないと、完全な初期設定を行おうとしているようです。最近のスナップショットがあり、それを復元しました。

これを実行しました:./launcher rebuild app
そして成功しました。
外部にpingでき、ウェブサイトは稼働しており、機能しています…

しかし、VMログイン時にすぐにこの問題が発生します。

5秒以内にプロセスを停止すると、すべて問題ないように見え、ウェブサイトは正常に機能しますが、何がこの問題を引き起こしており、VMログイン時にこれを停止するにはどうすればよいですか?

VMを再起動しましたが、再起動後にVMにssh接続しても同じ問題が発生しますが、ウェブサイトは稼働しています。

「いいね!」 1

奇妙ですね!

何らかのカスタムログインbashスクリプトが実行されているかのようです。

Discourseはどのようにインストールしましたか? 標準のインストールのみを使用しましたか?

いいえ、テーマコンポーネントではありません。

「いいね!」 4

discourse-setup を初回実行後に再度実行すると、このメッセージが表示されます。設定を変更するために再度実行できます。通常は、

./launcher rebuild app

を実行するだけで十分です。

「いいね!」 1

ログイン時に自動的にすぐに実行されるものですか?

それなら、DigitalOcean のワンクリック Discourse インストールはそういうことなのかもしれません。

だからこそ、標準インストールが推奨されているのでしょう。標準インストールではそうならないからです。ドキュメントには、.bashrc やそれに類するものを削除または編集できると書かれているかもしれません。

ログイン時に Ctrl+C を押せばよいのですが、それでも実際には害にならないものの、非常に煩わしいファイルがたくさん残ることになります。

「いいね!」 2

はい、その方が可能性が高いですね。

「いいね!」 1

数ヶ月前に標準インストールを使用しました。nginx リバースプロキシを使用していますが、8 月から問題なく動作しています。

discourse-setup は実行しませんでした(まあ、5 秒ほど実行してセットアップスクリプトを実行し始めましたが、それをキルしてスナップショットから復元しました。./launcher rebuild app は実行しました)。

はい:「ログイン時に即座に自動的に実行されますか?」ログインして root に sudo su すると、自動的に実行されます。

Digital Ocean は使用していません。

root の .bashrc ファイルを確認したところ、最後の行は次のようになっています。

/opt/hostinger/scripts/discourse_conf.sh

それが何をするか見てみましょう。もしそれがずっとそこにあったわけではないなら、私がそれを追加したわけではないことに注意してください。

#!/bin/bash
clear
cd /var/discourse

if ./discourse-setup; then
  clear
  echo "Discourse is now installed. Log into your admin account in a browser to continue"
  echo "configuring Discourse."

  cp -f /etc/skel/.bashrc /root/.bashrc
else
  echo ""
  echo "-----------------------------------------------------------------------------"
  echo "The setup script failed with the provided Discourse details."
  echo "It will rerun. Please address the above issues."
  echo "-----------------------------------------------------------------------------"
  echo "When you are ready, press Enter"
  echo "To cancel setup, press Ctrl+C and this script will be rerun on your next login"
  read wait
fi

Hostinger が VM をホストしています。その行を削除して、ログインして su を再度試してみます。それが .bashrc ファイルにどのように入ったのか分かりませんが、確かに手動で追加したわけではありません。

はい、これで問題が解決しました。rc ファイルがそのように変更されるとは思いもよらなかったので、確認することもありませんでした。皆さん、助けてくれてありがとう、とても感謝しています!

bashrc のその行をコメントアウトした後:

cd /var/discourse
if ./discourse-setup; then  echo 'found it'; else  echo 'not found'; fi

は次のように返します: not found

私にとっては、それが一度でも見つかったこと自体が奇妙です。

しかし、今(約 15 分後) ls -al ./discourse-setup を実行すると、次のように返されます: -rwxr-xr-x 1 root root 28715 Dec 23 23:24 ./discourse-setup

if ./discourse-setup; then echo 'found it'; else echo 'not found'; fi を実行すると、私が抱えていた問題が実行されます:「…Stopping existing container in 5 seconds or Control-C to cancel」

コメントを削除して再度ログインし、sudo su を実行すると、インストールの開始を求められましたが、discourse-setup スクリプトは作成されませんでした。では、discourse-setup はどのように作成されるのでしょうか?

discourse-setup スクリプトはどのように作成され、手動で削除できますか? 名前を変更しても、ログイン時に再作成されることはありません。/opt/hostinger/scripts/discourse_conf.sh の行が root の .bashrc にあってもなくても同様です。

次のようなメッセージは表示されませんでした。

  echo "The setup script failed with the provided Discourse details."
  echo "It will rerun. Please address the above issues."

画面がクリアされ、表示されたコメントは次のとおりでした。

The configuration file containers/app.yml already exists!
Saving old file as app.yml.2024-12-25-193919.bak
Stopping existing container in 5 seconds or Control-C to cancel.
 diff ./.bashrc /etc/skel/.bashrc
118d117
< # /opt/hostinger/scripts/discourse_conf.sh

なぜその行が .bashrc ファイルに入ったのか全く分かりませんし、問題の際に表示されたテキストは /opt/hostinger/scripts/discourse_conf.sh ファイルに記載されているものとは異なりますが、問題は解消されたようです。

また、現在 ./launcher rebuild app を実行するか、VM を再起動すると、ウェブサイトにすぐにアクセスしようとすると 502 エラーが発生し、ウェブサイトが利用可能になるまで約 1 分かかります。過去にはこのようなことはなかったと思いますが、すぐにウェブサイトにアクセスしようとしたことがなかったのかもしれません。それについて何か考えはありますか?

「いいね!」 1

ログイン時に実行されるスクリプトを調査し、セットアップの実行に関連する行を削除する必要があります。

私の知る限り、標準のインストールではそれらは変更されませんが、現時点ではそうなっています。

それをインストールさせたのはあなたです。

「いいね!」 2

投稿が時系列順ではなくなったんですね。

良いですね!

申し訳ありません、午前2時頃でした。

皆さん、ご協力ありがとうございました。上記で指摘した問題のいくつかはまだ不明ですが、.bashrc ファイルの最後の行を削除したことで問題は解消されたようです。

自問自答に答えます: discourse-setup スクリプトはどのように作成され、手動で削除できますか?

discourse-setup スクリプトは /var/discourse に存在する必要があります。これはベースコードの一部として出荷されます。

1分間の502については、他に指示がない限り、そのままにしておきます。

「いいね!」 1

しかし、あなたはそうしませんでした。ログイン時に自動的にDiscourseのセットアップを実行するHostingerのイメージを使用しました。

.bashrcからHostingerスクリプトを実行する行を削除したいのです。

discourse-setupを削除したいわけではありませんが、実行したくもないのです。

「いいね!」 1

はい、.bashrc と discourse-setup については、そのようにしました。しかし、自動的にインストールを実行した記憶はなく、数ヶ月経ってから突然再び実行された理由もわかりません。

GitHub の指示に従ったような気がしますが、記憶違いかもしれません。

いずれにせよ、.bashrc ファイルからその行を削除しました。

ありがとうございます。

「いいね!」 1

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