Versionado de Nginx

No es exactamente un Contribute > Bug, pero tampoco queda claro en qué otra categoría debería ir. Es un problema y no es un Contribute > Feature. Quizás Support, pero estoy bastante seguro de que sé lo que estoy haciendo aquí.

Ver también: una publicación similar de hace 3 años Dockerfile in official install instructions uses unsupported version of Nginx

Una prueba de penetración rutinaria realizada esta semana descubrió que la versión de NGINX que se está utilizando ha llegado a su fin de vida (EOL). No fue posible explotarla, pero se ha marcado como necesaria su corrección lo antes posible.

Intentar actualizar Discourse mediante git pull aún no ha solucionado el problema, porque aunque el repositorio Discourse Docker está actualizado, las plantillas fijan la imagen base como la versión anterior (discourse/base:2.0.20260109-0020)

Algunas preguntas:

  • ¿Por qué la versión fijada de NGINX era tan antigua que ya había llegado a su fin de vida? ¿Existe una justificación que desconozco?

  • ¿Por qué se ha elegido la nueva versión como 1.28.1 y no 1.29.4 (la más reciente a fecha 27.01.2026)? ¿Nuevamente, hay alguna justificación?

En general, Discourse parece bastante interesado en mantener a todos los usuarios en una versión reciente (parece sensato), es decir, lo que era tests-passed.

¿Cómo actualizo NGINX (idealmente sin parches locales improvisados)?

1 me gusta

No hay ninguna razón específica, es solo que no habíamos pasado por el proceso de actualización en un tiempo. Tiene razón en que idealmente deberíamos haber detectado esto antes de que llegara al EOL.

1.28.1 es la última versión ‘estable’, así que elegimos esa. 1.29.x es la versión ‘principal’ con mayor rotación, y actualmente no necesitamos ninguna de esas nuevas características.

Gracias por señalarlo. Ahora hemos terminado de actualizar la etiqueta en las plantillas, por lo que ejecutar otro ./launcher rebuild app debería darle la nueva versión de nginx.

6 Me gusta

No hay problema y gracias por la rápida respuesta @david!

Lamentablemente, esto todavía no parece estar funcionando. Ejecutar un git pull, y luego ./launcher rebuild app sí descargó una nueva imagen (discourse/base:2.0.20260116-2039), pero la imagen parece seguir incluyendo nginx 1.26.3:

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

Estoy investigando por mi parte por si se trata de algún problema extraño de almacenamiento en caché del contenedor, pero por lo que puedo ver, es simplemente que esa imagen base 20260116-2039 todavía contiene NGINX 1.26.3.

1 me gusta

Interesante, estoy viendo lo mismo. Si bien hemos actualizado NGINX en la configuración, parece que el aumento de la imagen pudo haber sido específicamente para aumentar Redis y no NGINX.

Consultaré con el equipo y veré si podemos fijar una versión de imagen aún más nueva.

4 Me gusta

¿Alguna novedad sobre el problema de fijación de la versión de NGINX? Vi un lanzamiento de 2026.1.0-latest, pero por lo que tengo entendido, eso no actualiza la imagen base.

Acabamos de actualizar la imagen de nuevo: Bump base image to `20260129-0023` (#1035) · discourse/discourse_docker@068819b · GitHub

Así que la próxima reconstrucción debería darte NGINX 1.28.1

3 Me gusta

Gracias @david, eso ya está funcionando.

1 me gusta