ホスト名の変更

既存のインスタンスからDiscourseコンテナとDiscourseのDockerファイルを古いバージョンでエクスポートし、別のサーバーにインポートしました。
新しいサーバーに合わせてDiscourseのホスト名を変更する必要があります。

  • 新しいDISCOURSE_HOSTNAME:を再ビルドせずに有効にする方法はありますか?
  • 再ビルドが必要な場合、mainブランチから最新バージョンを取得して、現在持っているバージョンを上書きしますか?現在のバージョンを正確に実行する必要があるためです。

こんにちは、イスラムさん :slight_smile:

私の知る限りではありません。

はい、そのようになります。

達成したいことに関連する情報は、こちらで見つけることができます: Search results for 'install version discourse' - Discourse Meta

Let’s Encrypt の設定を変更する必要があり、それが(少なくとも部分的には)再構築が必要な理由です。

なぜアップグレードしないのですか?それが本当に必要なことです。どのくらい古いのですか?

しかし、discourse_docker(別名 /var/discourse)と、あなたが現在使用している Discourse のバージョンを固定することはできます。すべてのプラグインも固定する必要があるかもしれません。

もし HTTPS の解決を別のものが行っている場合、再構築を回避して、Change the domain name or rename your Discourse の他の作業を行うだけで済むかもしれません。

本番環境にアップグレードをテストするために、そのインスタンスで同じバージョンが必要になります。成功すれば、本番環境でアップグレードを実行します。

HTTPS の解決を別のものが行っている場合、再構築を回避して、ドメイン名を変更または Discourse を名前変更する で説明されている他のことを行うだけで済むかもしれません。
HTTPS はロードバランサーで処理されますが、そのリンクでは app.yml を変更した後に再構築する必要があると書かれています。

  • バージョンを固定する場合、discourse_docker については、現在のコミットハッシュをチェックアウトする必要がありますか?
  • コンテナ内の Discourse アプリについては、app.ymlversion: <commit_hash> を使用して現在のコミットハッシュを設定する必要もありますか?
  • プラグインについてはどうですか?

テストサーバーに現在のバージョンをインストールし、データベースを復元すれば、本番サーバーをアップグレードできる可能性が高いです。

あなたが提案していることは、おそらく数時間の作業であり、フォーラムで説明するのが非常に難しい、たくさんの紛らわしい小さな部分があり、本番データベースを新しいサーバーに復元することでは証明できないものです。

ステージングサーバーと本番サーバーを同じS3バックアップバケットに向け、本番環境をバックアップしてステージングサーバーに復元するだけです。今後、それらは同等になり、ステージングと本番環境を迅速に連続してアップグレードできます。

「いいね!」 1

再構築をトリガーしましたが、以下のようになりました。

I, [2023-04-07T19:17:58.707365 #1]  INFO -- : cd /var/www/discourse & gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
ERROR:  Could not find a valid gem 'bundler' (= 2.3.4), here is why:
          Unable to download data from https://rubygems.org/ - Net::OpenTimeout: execution expired (https://rubygems.org/specs.4.8.gz)

しかし、ホストから rubygems.org を curl できます。

上記のエラーについて、何か提案はありますか?

コマンドラインから再構築しましたか? 標準的なインストールですか?

はい、再構築コマンドとGUIからのアップグレードも同じエラーを発生させました。

エラーのためフェッチャーをリトライ中 (4/4): Bundler::HTTPError 基本エラー <Net::OpenTimeout: execution expired (https://rubygems.org/specs.4.8.gz)> により https://rubygems.org/ からスペックを取得できませんでした

ロックされたバンダーバージョン (2.4.4) のインストール中にエラーが発生しました。詳細については `--verbose` フラグを付けて再実行してください。バンダー 2.3.6 を使用して続行します。
ソースインデックスを https://rubygems.org/ から取得中

基本エラーにより https://rubygems.org/ からスペックを取得できませんでした

<Net::OpenTimeout: execution expired (https://rubygems.org/specs.4.8.gz)>
Docker Manager: アップグレードに失敗しました