La reconstrucción de Discourse falla durante el bootstrap: tiempo de espera de Git HTTPS, buscando un método alternativo limpio basado en SSH

Hola,

Estoy ejecutando una instalación estándar de Discourse autoalojada en Ubuntu utilizando la configuración oficial discourse_docker.

Entorno

  • Ubuntu Server
  • Docker
  • discourse_docker oficial
  • Instalación de un solo contenedor (app.yml)
  • Reconstrucción realizada mediante:
cd /var/discourse
./launcher rebuild app

Problema

El proceso de reconstrucción falla durante la fase de arranque (bootstrap) cuando Discourse intenta actualizar el código fuente de la aplicación desde GitHub.

El error ocurre en:

git fetch --tags --prune-tags --prune --force origin

y produce:

fatal: unable to access 'https://github.com/discourse/discourse.git/': SSL connection timeout

seguido de:

FAILED
bootstrap failed with exit code 128

Hallazgos importantes

GitHub es accesible vía HTTPS

En el host:

curl -I https://github.com

funciona correctamente.

También:

curl -I https://raw.githubusercontent.com

funciona correctamente.

Git sobre HTTPS es poco fiable en mi entorno

Dentro del entorno de Discourse:

git ls-remote https://github.com/discourse/discourse.git

falla con:

SSL connection timeout

Según mi investigación, esto parece ser causado por problemas de conectividad de mi proveedor de Internet hacia GitHub a través de HTTPS. En este momento, no estoy intentando resolver ese problema de red en sí mismo. En su lugar, busco una forma de realizar las reconstrucciones de Discourse usando SSH, ya que la conectividad SSH con GitHub funciona correctamente en mi entorno.

La autenticación SSH de GitHub funciona

Generé una nueva clave SSH, la agregué a GitHub y verifiqué la autenticación:

ssh -T git@github.com

devuelve:

Hola <usuario>! Te has autenticado correctamente, pero GitHub no proporciona acceso a la shell.

También:

git ls-remote git@github.com:discourse/discourse.git

funciona correctamente desde el host.

URLs del repositorio

En el host, cambié /var/discourse para usar SSH:

origin git@github.com:discourse/discourse_docker.git

y las operaciones de Git funcionan.

Sin embargo, dentro del contenedor de la aplicación de Discourse:

cd /var/www/discourse
git remote -v

muestra:

origin https://github.com/discourse/discourse.git

Por lo tanto, durante el arranque (bootstrap), Discourse aún intenta usar HTTPS.

Lo que me gustaría lograr

Mi objetivo principal es hacer que las reconstrucciones de Discourse sean fiables en un entorno donde las conexiones HTTPS de GitHub son inestables o suelen tener tiempos de espera.

Me gustaría saber:

  1. ¿Existe una forma oficialmente soportada de hacer que el arranque y la reconstrucción de Discourse utilicen GitHub sobre SSH en lugar de HTTPS?
  2. Si no es así, ¿cuál es el enfoque recomendado para entornos donde Git HTTPS es poco fiable pero SSH funciona correctamente?
  3. ¿Existe un método soportado para inyectar credenciales SSH en la fase de arranque/construcción?
  4. ¿Alguien ha configurado con éxito discourse_docker para obtener actualizaciones del código fuente de Discourse a través de SSH?

Preferiría una solución que sobreviva a futuras actualizaciones, pero también me interesa entender si la obtención basada en SSH durante el arranque está técnicamente soportada.

Agradecería mucho cualquier orientación.

Gracias.