Nginx バージョンのピン留め

これは#bugではありませんが、他にどのカテゴリに入れるべきか明確ではありません。問題はありますが、#featureではありません。おそらく#supportですが、私はここで何をしているかについてはかなりの確信があります。

こちらも参照してください:3年前に同様の投稿がありました Dockerfile in official install instructions uses unsupported version of Nginx

今週の定期的なペンテストで、使用されているNGINXのバージョンがEOL(サポート終了)であることが判明しました。悪用することはできませんでしたが、早急に修正する必要があるとしてフラグが立てられました。

git pullでDiscourseを更新しようとしても、この問題は解決しませんでした。なぜなら、Discourse Dockerリポジトリは更新されていますが、テンプレートがベースイメージを以前のバージョン(discourse/base:2.0.20260109-0020)に固定しているためです。

いくつかの質問です。

  • NGINXの固定バージョンがEOLになるほど古かったのはなぜですか?私が知らない理由があるのでしょうか?

  • 新しいバージョンとして1.29.4(2026.01.27現在最新)ではなく1.28.1が選ばれたのはなぜですか?ここにも理由があるのでしょうか?

一般的に、Discourseはすべてのユーザーを最新バージョン(理にかなっているように見えます)に保つことに非常に熱心であるように見えます。つまり、以前のtests-passedです。

NGINXを更新するにはどうすればよいですか(できればローカルでの回避策なしで)。

「いいね!」 1

特に理由はありません。単に、しばらくの間アップデートプロセスを完了していなかっただけです。EOLになる前にこれに気づくべきだったというのはごもっともです。

1.28.1が最新の「安定版」なので、そちらを採用しました。1.29.xは変更頻度の高い「メインライン」バージョンであり、現時点ではそれらの新機能の必要性はありません。

ご指摘ありがとうございます。テンプレート内のタグの更新は完了しました。そのため、もう一度 ./launcher rebuild app を実行すれば、新しいnginxバージョンが適用されるはずです。

「いいね!」 6

問題ありません、@david 様、迅速なご対応ありがとうございます!

残念ながら、まだ機能していないようです。git pull の後に ./launcher rebuild app を実行すると新しいイメージ (discourse/base:2.0.20260116-2039) がプルされましたが、そのイメージにはまだ nginx 1.26.3 が含まれているようです。

root@server:/var/discourse# docker exec -it app nginx -v
nginx version: nginx/1.26.3

これが奇妙なコンテナキャッシングの問題でないか、念のためこちらで調査していますが、私の知る限りでは、その 20260116-2039 のベースイメージに NGINX 1.26.3 が含まれているだけです。

「いいね!」 1

興味深い、私も同じ状況です。設定でNGINXは更新しましたが、イメージの更新は特にRedisを更新するためのもので、NGINXではないようです。

チームに確認し、さらに新しいイメージバージョンを固定できるか見てみます。

「いいね!」 4

NGINX のバージョン固定の問題に関する最新情報はありますか? 2026.1.0-latest のリリースを見ましたが、私の知る限りではベースイメージが更新されていません。

画像を再度更新しました: Bump base image to `20260129-0023` (#1035) · discourse/discourse_docker@068819b · GitHub

これにより、次の再構築で NGINX 1.28.1 が提供されるはずです。

「いいね!」 3

@davidさん、ありがとうございます。これで動作するようになりました。

「いいね!」 1