Manera correcta de actualizar el sistema operativo Docker (bullseye)

Necesito actualizar el sistema operativo Debian (bullseye) actual para actualizar los paquetes que están siendo marcados. ¿Hay documentación o pasos sobre esto?

Gracias

Esto no es un problema de Discourse, sino un problema del sistema operativo. Hay muchos sitios que describen cómo actualizar tu sistema operativo.

Mi recomendación es crear una nueva VM con un nuevo sistema operativo y luego Mover un sitio de Discourse a otro VPS con rsync

2 Me gusta

El sistema operativo de Docker que se instaló durante la instalación de Discourse, no el sistema operativo anfitrión.

Puedes añadir los comandos habituales a app.yml

1 me gusta

¿Quieres actualizar Debian dentro del contenedor?

¿Qué se está marcando y por quién?

Pero si eso es lo que quieres decir, puedes

./launcher enter app
apt-get update
apt-get upgrade

y probablemente no romperá nada. Sin embargo, no lo recomiendo.

Y si eso es lo que realmente quieres decir, entonces puedes agregarlos como estrofas exec, puedes mirar templates/import/mysql-dep.template.yml como ejemplo.

Sí, Debian dentro del contenedor porque lo veo como mi única opción.

Por ejemplo, nuestro equipo de seguridad ha marcado vulnerabilidades con Node.js 18.x, libcurl, openssl. Tomemos libcurl, mi versión actual es 7.4, que parece ser la versión más actual en bullseye, pero para cumplir, necesita ser 8.4 y otros paquetes siguen el mismo camino.

./launcher enter app
apt-get update
apt-get upgrade

He ejecutado estos comandos para actualizar bullseye pero sin éxito.

Sí. No es tan simple. No hay una “forma adecuada de actualizar el sistema operativo de Docker (bullseye)”.

Podrías modificar https://github.com/discourse/discourse_docker/blob/main/image/base/slim.Dockerfile para crear una imagen que tu equipo de TI apruebe. Supongo que empezaría usando la última versión de Debian como imagen base. Probablemente dedicaría una semana a hacerlo, pero fácilmente podría llevar la mitad o el doble de tiempo, si la base de código de Discourse funciona con las versiones más nuevas (probablemente lo haga, pero no hay forma de saberlo).

Crear una imagen que funcione y satisfaga tus problemas de cumplimiento será un proceso largo y probablemente más peligroso que usar la imagen estándar, que es probada por el equipo de Discourse y funciona en miles de sitios. En su lugar, ejecutarás una imagen que solo tú conoces. Cuando se rompa, no podrás obtener ningún soporte aquí, ya que será imposible saber si el problema es con el código o con alguna biblioteca que Discourse aún no esté soportando.

Cada vez que actualices, deberás dedicar tiempo a ver si las actualizaciones de Discourse funcionan con tu imagen.

Si tu personal de TI insiste en estas actualizaciones, entonces probablemente deberías considerar otra plataforma.

Oye, aquí un desarrollador destacado dice que siempre usa la última versión LTS de Node en su versión de desarrollo, lo que sugiere que no debería haber ningún problema con eso.

Así que eso significa que tu problema con Node debería ser totalmente seguro.

Parece muy improbable que libcurl rompa cosas de una manera no compatible hacia atrás, así que tal vez tu tarea no sea tan difícil como imaginaba. Así que, tal vez solo 1-5 horas de trabajo para alguien familiarizado con las diversas piezas.

Así que creo que solo necesitarías hacer un fork de discourse_docker y cambiar algunas líneas en slim.Dockerfile y tal vez simplemente funcione y no sea un gran problema después de todo.

1 me gusta