/var/discourse フォルダ内のランチャーコマンドは、それ自体で意味がわかりません

Siteground のメールサービスのトラブルシューティングのため、設定を変更してリロードを数回行いました。最も迅速に行う方法について複数のアドバイスがありましたが、それらをすべてまとめると混乱を招く結果となりました。
そこで、以下のコマンドの違いについて、より詳しくご教示いただけますでしょうか。

インストールガイド やこのフォーラムの投稿に記載されている情報は、どこか一貫していません。例えば、「コンテナの初期化」と「コンテナのビルド」の違いが明確に理解できていません。
app.yml などを変更した場合にどのコマンドを実行すべきかを示す「エスカレーションの段階」があるはずです。ある人は start で十分だといい、別の人は rebuild が必要だと言い、さらに ./discourse-setup も実行すべきだとする人もいます。

コマンド一覧:
    start:      コンテナの起動/初期化
    stop:       実行中のコンテナの停止
    restart:    コンテナの再起動
    destroy:    コンテナの停止と削除
    bootstrap:  テンプレートに基づいた設定でコンテナをブートストラップ
    rebuild:    コンテナの再構築(古いものを削除し、ブートストラップして新規起動)

次第に、すべてのコマンドが連続したアクションの連鎖のように思えてきました。
各 successive なステップ/コマンドは、その前のステップと同じことを行いつつ、さらに何かを追加して行うもののようです。

例えば、以下のようなイメージです。

  1. 起動系

    1. bootstrap: 古いものを削除し、テンプレートに基づいた設定でコンテナをブートストラップ
    2. rebuild: bootstrap を実行後、コンテナを再構築(新規起動)。これにより、最新のソフトウェアバージョンのダウンロードや更新された設定の適用などが行われる
    3. start: 初期化(その意味は不明)
  2. 停止系

    1. stop: 実行中のコンテナを停止
    2. restart: コンテナを再起動(停止を含む)
    3. destroy: コンテナを停止し削除

どこがわからないのかわかりませんが…提案された変更で PR を作成してもらえますか?

GitHub で PR を作成しようとしていますが、現状では各コマンドの詳細を理解できていません。

各コマンドが何を引き起こすのか教えていただけますか?これに関連して多くの投稿を読んだのですが、情報が一貫していません。
良い例として start コマンドがあります。ある場所では、ホスト上で何か作業を行う際にコンテナを停止して起動するためにのみ使用されると書かれていますが、別のトピックでは「コンテナを初期化する」と記載されており、その「初期化」が何を意味するのか不明です:confused

初期化とは、コンテナが存在しない場合に新規作成されることを意味します。停止後、再起動すると、同じパラメータ(smtp やその他の環境設定など)を持つ同じコンテナが停止・起動されますが、一度破棄してから実行すると、新しい環境設定を持つ新しいコンテナが作成、つまり初期化されます。

コンテナが存在しない場合、bootstrap と start の違いは何ですか?

Bootstrap は新しい Docker イメージを構築します。これは、実行中のコンテナを「初期化」するために必要です。

Rebuild は常に機能します。環境設定(SMTP など)を反映させるには、destroy と start のみで十分な場合もありますが、多くの人はこうした細部を理解していないため、常に Rebuild を実行するよう伝える方が安全です。なぜなら、Rebuild は常に機能するからです。

したがって、./discourse-setup は Discourse のソフトウェアのみを再構築するもので、最も侵入性の低いコマンドです。

  1. bootstrap:最初から始め、Docker イメージから開始します
  2. start:最初から始め、コンテナを構築します
  3. ./discourse-setup:Discourse のセットアップを実行します

app.yml に定義されている、または app.yml で参照されている設定を再適用するための利用可能なコマンドは何ですか?

app.yml をすべての情報のソースと仮定すると、./discourse-setup はこのファイルのみを読み込んで処理を行います。

各コマンドの正確な機能を把握する必要がある場合は、こちらをご覧ください:discourse_docker/launcher at master · discourse/discourse_docker · GitHub

ありがとうございます、助かりました :slight_smile:
ここに以前言及されたセットアップがありますが、./discourse-setup と関連がありますか?

これでさらに完全になりました。

使用法: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
コマンド:
    start:       コンテナを開始/初期化します
    stop:        実行中のコンテナを停止します
    restart:     コンテナを再起動します
    destroy:     コンテナを停止して削除します
    enter:       コンテナ内でコマンドを実行するためのシェルを開きます
    logs:        コンテナのDockerログを表示します
    bootstrap:   テンプレートに基づいてコンテナを構成用にブートストラップします
    run:         最後にブートストラップされたイメージのコンテキストで、指定されたコマンドを構成で実行します
    rebuild:     コンテナを再構築します(古いものを削除し、ブートストラップし、新しいものを開始します)
    cleanup:     24時間以上停止しているすべてのコンテナを削除します
    start-cmd:   コンテナを開始するために使用されるdockerコマンドを生成します

オプション:
    --skip-prereqs             ランチャーの前提条件をチェックしません
    --docker-args              dockerを実行する際に渡す追加の引数
    --skip-mac-address         MACアドレスを割り当てません
    --run-image                コンテナの実行に使用されるイメージをオーバーライドします
root@monstera:/var/discourse#