stevejr
(Steve)
1
こんにちは、
本番環境の Discourse サーバー(公式インストール手順に従って EC2 で自己ホストしています)をアップグレードする予定ですが、推奨されるアプローチについて確認したいと考えています。
UI にアップグレードボタンが有効化されていないため、EC2 インスタンス上で行うことになります。現在、主に 2 つの方法があると考えています。
- EC2 サーバーを再構築する。これにより discourse_docker GitHub リポジトリの最新コピーが取得され、そこに含まれるテンプレート(例:
web.template.yml が現在参照しているベースイメージ discourse/base:2.0.20260209-1300)が使用されます。このアプローチでは、現在の稼働中のサーバーが削除され、新しいサーバーが起動します。
- 既存の EC2 サーバーにログインし、以下のコマンドを実行して現在のイメージを再構築し、コンテナを再起動する:
2 つの質問があります。
- 通常のメンテナンスにはどちらのアプローチを使用すべきでしょうか?
rebuild app コマンドを実行した場合、discourse_docker リポジトリの main ブランチが引き続き取得されるのでしょうか?
https://releases.discourse.org サイトを確認しましたが、バージョン 2026.3.0 はまだリリースされていません。本番環境では、現在も活発な開発中のリリースの最新の main ブランチを使用すべきではないと理解しています。
ご助言をいただければ幸いです。よろしくお願いいたします。
最新版にアップグレードしたい場合は、管理コンソールから手動でアップグレードしてください。
esr バージョンにアップグレードしたい場合は、containers/app.yml の最後に esr を指定するだけです。
params:
version: esr
その後、再ビルドを実行してください。
ネットワークが正常に動作していることを確認してください。
「いいね!」 1
stevejr
(Steve)
3
ご返信ありがとうございます。
バージョンを esr に設定することで、テンプレートで使用されるベースイメージが上書きされるのでしょうか。
管理 UI でアップグレードを有効にしたくないため、インスタンス内でこれを処理する方法、あるいはインスタンスを再構築して AutoScaler に管理させる方法が必要です。
esr を使用する場合、重要な修正がプッシュされた際にどのように更新されるのでしょうか。やはり、esr バージョンの更新を取り込むために、月次でランチャー経由または新しい EC2 インスタンスを再構築するだけでよいのでしょうか。
Moin
4
Understanding Discourse release channels と Configure a supported tracking branch to get Discourse software updates をお読みになりましたか?違いをより正確に表現すると、「最新の変更点に即座にアクセスできるか」または「少し遅れて受け取れるか」の違いと言えます。後者は、まず適応が必要なカスタム開発にとって非常に役立ちます。それ以外の場合は、最新の機能と修正にアクセスする方を好みます。もちろん、これには新しいバグのリスクが伴いますが、3 週間前に固定されたバージョンにもバグが含まれており、それらはすでに最新バージョンで修正されている可能性があります。ただし、通常、最後のリリースへバックポートするほど重大なものではありません。
また、ダウングレードはサポートされていないことを覚えておいてください。現在の ESR よりも後のバージョンを使用している場合は、次の ESR が公開されるまで待つ必要があります。
「いいね!」 1
Ed_S
(Ed S)
5
現在、非常に古いバージョンをお使いの場合は、ランチャーコマンドを実行する前に git pull を行うことをお勧めします。
stevejr
(Steve)
6
ああ、Configure a supported tracking branch to get Discourse software updates の投稿を見落としていました。
これまでの回答から、月次更新を行っているため release ブランチを使用しようと思います。
この情報に心から感謝します。
「いいね!」 1