Versionamento di Nginx

Non è esattamente un Contribute > Bug, ma non è chiaro in quale altra categoria dovrebbe essere inserito. È un problema e non rientra nella categoria Contribute > Feature. Potrebbe essere Support, ma sono piuttosto sicuro di quello che sto facendo qui.

Vedi anche: un post simile di 3 anni fa Dockerfile in official install instructions uses unsupported version of Nginx

Un test di penetrazione di routine questa settimana ha rilevato che la versione di NGINX in uso è arrivata alla fine del supporto (EOL). Non era possibile sfruttarla, ma è stata segnalata come urgente da risolvere.

Il tentativo di aggiornare Discourse tramite git pull non ha ancora risolto il problema, perché sebbene il repository Discourse Docker sia aggiornato, i template fissano l’immagine di base alla versione precedente (discourse/base:2.0.20260109-0020).

Alcune domande:

  • Perché la versione di NGINX fissata era così vecchia da essere già EOL? C’è una ragione che mi sfugge?

  • Perché la nuova versione è stata scelta come 1.28.1 e non 1.29.4 (ultima versione al 27.01.2026) - c’è anche in questo caso una ragione?

In generale, Discourse sembra tenere molto a mantenere tutti gli utenti su una versione recente (sembra sensato), ad esempio quella che era tests-passed.

Come posso aggiornare NGINX (idealmente senza ricorrere a soluzioni locali temporanee)?

1 Mi Piace

Non c’è una ragione specifica, è solo che non avevamo completato il processo di aggiornamento da un po’ di tempo. Hai ragione sul fatto che idealmente avremmo dovuto accorgercene prima che andasse EOL.

1.28.1 è l’ultima versione ‘stabile’, quindi abbiamo optato per quella. 1.29.x è la versione ‘mainline’ con un turnover più elevato e al momento non abbiamo bisogno di nessuna di quelle nuove funzionalità.

Grazie per averlo segnalato. Abbiamo ora finito di aggiornare il tag nei template, quindi eseguire un altro ./launcher rebuild app dovrebbe darti la nuova versione di nginx.

6 Mi Piace

Nessun problema e grazie per la rapida risposta @david!

Purtroppo questo sembra ancora non funzionare. Eseguendo un git pull, quindi ./launcher rebuild app ha scaricato una nuova immagine (discourse/base:2.0.20260116-2039) ma l’immagine sembra contenere ancora nginx 1.26.3:

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

Sto indagando da parte mia nel caso si tratti di qualche strano problema di caching dei container, ma per quanto ne so è semplicemente che quell’immagine base 20260116-2039 contiene ancora NGINX 1.26.3.

1 Mi Piace

Interessante, vedo lo stesso. Sebbene abbiamo aggiornato NGINX nella configurazione, sembra che l’aggiornamento dell’immagine fosse specificamente inteso per aggiornare Redis e non NGINX.

Verificherò con il team e vedrò di bloccare una versione dell’immagine ancora più recente.

4 Mi Piace

Qualche aggiornamento sul problema di blocco della versione di NGINX? Ho visto una release di 2026.1.0-latest ma per quanto ne so non aggiorna l’immagine di base.

Abbiamo appena aggiornato l’immagine: Bump base image to `20260129-0023` (#1035) · discourse/discourse_docker@068819b · GitHub

Quindi la prossima ricostruzione dovrebbe darti NGINX 1.28.1

3 Mi Piace

Grazie @david, ora funziona.

1 Mi Piace