Salve,
Sto eseguendo un’installazione standard di Discourse in self-hosted su Ubuntu utilizzando la configurazione ufficiale discourse_docker.
Ambiente
- Ubuntu Server
- Docker
discourse_dockerufficiale- Installazione a singolo contenitore (
app.yml) - Ricostruzione eseguita tramite:
cd /var/discourse
./launcher rebuild app
Problema
Il processo di ricostruzione fallisce durante la fase di bootstrap quando Discourse tenta di aggiornare il codice sorgente dell’applicazione da GitHub.
Il fallimento si verifica a:
git fetch --tags --prune-tags --prune --force origin
e produce:
fatal: unable to access 'https://github.com/discourse/discourse.git/': SSL connection timeout
seguito da:
FAILED
bootstrap failed with exit code 128
Riscontri Importanti
GitHub è raggiungibile via HTTPS
Sull’host:
curl -I https://github.com
funziona correttamente.
Inoltre:
curl -I https://raw.githubusercontent.com
funziona correttamente.
Git via HTTPS è inaffidabile nel mio ambiente
All’interno dell’ambiente Discourse:
git ls-remote https://github.com/discourse/discourse.git
fallisce con:
SSL connection timeout
Dalle mie indagini, sembra che ciò sia causato da problemi di connettività del mio provider Internet verso GitHub tramite HTTPS. Al momento, non sto cercando di risolvere il problema di rete in sé. Invece, sto cercando un modo per eseguire le ricostruzioni di Discourse utilizzando SSH, poiché la connettività SSH verso GitHub funziona correttamente nel mio ambiente.
L’autenticazione SSH di GitHub funziona
Ho generato una nuova chiave SSH, l’ho aggiunta a GitHub e ho verificato l’autenticazione:
ssh -T git@github.com
restituisce:
[“Hi ! You’ve successfully authenticated, but GitHub does not provide shell access.”]
Inoltre:
git ls-remote git@github.com:discourse/discourse.git
funziona correttamente dall’host.
URL del repository
Sull’host, ho modificato /var/discourse per utilizzare SSH:
[“origin git@github.com:discourse/discourse_docker.git”]
e le operazioni Git funzionano.
Tuttavia, all’interno del contenitore dell’applicazione Discourse:
cd /var/www/discourse
git remote -v
mostra:
[“origin GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. · GitHub”]
Quindi, durante il bootstrap, Discourse tenta ancora di utilizzare HTTPS.
Cosa Vorrei Raggiungere
Il mio obiettivo principale è rendere affidabile la ricostruzione di Discourse in un ambiente in cui le connessioni HTTPS a GitHub sono instabili o si interrompono frequentemente.
Vorrei sapere:
- Esiste un metodo ufficialmente supportato per far sì che il bootstrap e la ricostruzione di Discourse utilizzino GitHub tramite SSH invece di HTTPS?
- In caso contrario, qual è l’approccio consigliato per ambienti in cui Git via HTTPS è inaffidabile ma SSH funziona correttamente?
- Esiste un metodo supportato per iniettare le credenziali SSH nella fase di bootstrap/build?
- Qualcuno ha configurato con successo
discourse_dockerper recuperare gli aggiornamenti del codice sorgente di Discourse tramite SSH?
Preferirei una soluzione che sopravviva ai futuri aggiornamenti, ma sono anche interessato a capire se il recupero basato su SSH durante il bootstrap sia tecnicamente supportato.
Qualsiasi indicazione sarebbe molto apprezzata.
Grazie.