Échec de la reconstruction de Discourse pendant le bootstrap : timeout HTTPS Git, recherche d'une solution de contournement propre basée sur SSH

Bonjour,

Je exécute une installation standard de Discourse auto-hébergée sous Ubuntu en utilisant la configuration officielle discourse_docker.

Environnement

  • Ubuntu Server
  • Docker
  • discourse_docker officiel
  • Installation en conteneur unique (app.yml)
  • Reconstruction effectuée via :
cd /var/discourse
./launcher rebuild app

Problème

Le processus de reconstruction échoue lors de la phase de bootstrap lorsque Discourse tente de mettre à jour le code source de l’application depuis GitHub.

L’échec se produit à :

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

et génère :

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

suivi de :

FAILED
bootstrap failed with exit code 128

Constats importants

GitHub est accessible via HTTPS

Sur l’hôte :

curl -I https://github.com

termine correctement.

De même :

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

termine correctement.

Git sur HTTPS est peu fiable dans mon environnement

Dans l’environnement Discourse :

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

échoue avec :

SSL connection timeout

D’après mes investigations, cela semble être dû à des problèmes de connectivité de mon fournisseur d’accès Internet vers GitHub sur HTTPS. Pour l’instant, je ne cherche pas à résoudre ce problème réseau lui-même. Je cherche plutôt un moyen d’effectuer les reconstructions de Discourse en utilisant SSH, car la connectivité SSH vers GitHub fonctionne correctement dans mon environnement.

L’authentification SSH sur GitHub fonctionne

J’ai généré une nouvelle clé SSH, l’ai ajoutée à GitHub et vérifié l’authentification :

ssh -T git@github.com

renvoie :

Hi <username> ! Vous vous êtes authentifié avec succès, mais GitHub ne fournit pas d'accès au shell.

De plus :

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

fonctionne correctement depuis l’hôte.

URLs du dépôt

Sur l’hôte, j’ai modifié /var/discourse pour utiliser SSH :

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

et les opérations Git fonctionnent.

Cependant, à l’intérieur du conteneur de l’application Discourse :

cd /var/www/discourse
git remote -v

affiche :

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

Ainsi, lors du bootstrap, Discourse tente toujours d’utiliser HTTPS.

Ce que je souhaite accomplir

Mon objectif principal est de rendre les reconstructions de Discourse fiables dans un environnement où les connexions HTTPS vers GitHub sont instables ou échouent fréquemment par délai d’attente.

Je souhaiterais savoir :

  1. Existe-t-il une méthode officiellement supportée pour que le bootstrap et la reconstruction de Discourse utilisent GitHub via SSH au lieu de HTTPS ?
  2. Si non, quelle est l’approche recommandée pour les environnements où Git sur HTTPS est peu fiable mais où SSH fonctionne correctement ?
  3. Existe-t-il une méthode supportée pour injecter des identifiants SSH lors de la phase de bootstrap/construction ?
  4. Quelqu’un a-t-il réussi à configurer discourse_docker pour récupérer les mises à jour du code source de Discourse via SSH ?

Je privilégie une solution qui survive aux futures mises à niveau, mais je suis également intéressé à comprendre si la récupération via SSH pendant le bootstrap est techniquement supportée.

Toute orientation serait grandement appréciée.

Merci.