Impossibile ricostruire Discourse: errore di connessione GitHub e problemi con la porta 443 su GCP

Ciao Community di Discourse,

Sto avendo problemi a ricostruire la mia istanza di Discourse su una VM Google Cloud Platform (GCP) (Ubuntu 22.04, 16GB RAM, 8 core CPU). La ricostruzione fallisce a causa di un errore di connessione a GitHub e sto riscontrando problemi anche con l’accessibilità della porta 443. Ho provato diversi passaggi, ma sono bloccato e apprezzerei il vostro aiuto.

Errore di connessione GitHub durante la ricostruzione

Quando eseguo ./launcher rebuild app o ./discourse-setup, la ricostruzione fallisce con il seguente errore nei log:

fatal: unable to access ’ https://github.com/discourse/discourse.git/ ': Failed to connect to github.com port 443 after 3 ms: Couldn’t connect to server

Pups::ExecError: cd /var/www/discourse && sudo -H -E -u discourse bash -c ‘… git fetch …’ failed with return #<Process::Status: pid 145 exit 128>

Tuttavia, il test della connettività GitHub dall’host funziona correttamente:

curl -I https://github.com

HTTP/2 200

Ma l’esecuzione come utente discourse fallisce:

sudo -u discourse -H git ls-remote https://github.com/discourse/discourse.git

fatal: unable to access ’ https://github.com/discourse/discourse.git/ ': Failed to connect to github.com port 443 after 3 ms: Couldn’t connect to server

La risoluzione DNS per github.com funziona:

sudo -u discourse -H nslookup github.com 8.8.8.8

Server:         8.8.8.8

Address:        8.8.8.8#53

Name:   github.com

Address: 192.30.255.113

Hai un firewall abilitato? Probabilmente è quello il colpevole.

È all’interno del container? Ci possono essere regole firewall diverse applicate a docker rispetto all’host.

Ho configurato l’auto-hosting su Google Cloud un paio di volte prima. Tuttavia, il mio ultimo tentativo, una settimana fa, non ha funzionato. Mi continua a dare errori relativi al percorso dei dati 443 e GitHub, e non riesco a ricostruire.

Il fatto che non sia riuscito a connettersi dopo soli 3 ms significa che il problema risiede nell’host o molto vicino ad esso.

Quali modifiche hai apportato all’host? Hai avviato un firewall? Forse sta sovrascrivendo le regole di inoltro necessarie per docker.

Inizia esaminando la connettività IP del container.

1 Mi Piace