app.yml が存在しない状態で launcher bootstrap/rebuild を実行した場合に CLI 警告を追加する

Discourse の新規クローンがセットアップされると、リポジトリには standalone.yml が付属しています。

文書化されたワークフローは次のとおりです。

git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup   # app.yml を作成します

しかし、誰かが ./discourse-setup をスキップして代わりに次を実行した場合

./launcher bootstrap app
# または
./launcher rebuild app

app.yml が存在しない場合、app.yml が存在せず、standalone.yml が開始点として自動的に認識されないため、混乱を招くエラーが発生します。

これは、新しい管理者が standalone.yml がすでに使用可能であると想定しているため、よくあるつまずきの原因です。


提案:

  • launcher bootstrap または launcher rebuild が呼び出され、containers/app.yml が存在しない場合、CLI は次のような明確な警告を表示する必要があります。
containers/app.yml が見つかりませんでした。
最初に ./discourse-setup を実行しましたか?
注:app.yml はサンプル standalone.yml ファイルから生成されます。

これにより、新しいユーザーが行き止まりに遭遇し、Meta で回答を探すことを避けることができます。


これは launcher に追加するのに妥当なものですか?

「いいね!」 2

はい、現在、app.yml を作成せずに ./launcher bootstrap app を実行すると、次のエラーメッセージが表示されるだけです。

ERROR: containers/app.yml does not exist or is not readable.

これは正確ですが、特に次の 2 つの一般的なケースではあまり役に立ちません。

  1. 新規本番環境インストール
    standalone.yml から app.yml を生成するには、./discourse-setup を実行する必要があります。

  2. 送信メールなしのクイックテストフォーラム
    SMTP を設定せずにローカル/テスト用の Discourse を起動したい場合があります。
    通常のワークフローは次のとおりです。

./launcher bootstrap app
./launcher start app
./launcher enter app
rake admin:create

これにより、メールを必要とせずに管理者アカウントが作成されます。


提案:
両方のパスをガイドするようにエラーメッセージを改善します。たとえば、次のようになります。

「いいね!」 1

公式のバックアップ/復元ガイドでは、launcherを実行する前に新しいVPSにapp.ymlを配置するように推奨しています。

そのため、エラーメッセージもそのシナリオをカバーできるかもしれません。現在、ガイドに従っているが、最初にapp.ymlをコピーし忘れた人は、同じ行き止まりに遭遇します。

たとえば、次のようなメッセージはどうでしょうか。

エラー: containers/app.yml が存在しないか、読み取れません。

これが最初のインストールの場合、./discourse-setup を実行して app.yml を生成してください
(サンプル standalone.yml から)。

新しいサーバーに復元している場合は、既存の app.yml を
古いサーバーから /var/discourse/containers にコピーしたことを確認してください。

これにより、メッセージは次の3種類のユーザーを正しい方向に導くことができます。

  • 真新しい管理者
  • フォーラムを復元している人
  • SMTPを設定したくないテスター