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_dockerofficiel- 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 :
- 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 ?
- Si non, quelle est l’approche recommandée pour les environnements où Git sur HTTPS est peu fiable mais où SSH fonctionne correctement ?
- Existe-t-il une méthode supportée pour injecter des identifiants SSH lors de la phase de bootstrap/construction ?
- Quelqu’un a-t-il réussi à configurer
discourse_dockerpour 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.