Impossível Reconstruir Discourse: Erro de Conexão do GitHub e Problemas na Porta 443 no GCP

Olá Comunidade Discourse,

Estou tendo problemas para reconstruir minha instância do Discourse em uma VM do Google Cloud Platform (GCP) (Ubuntu 22.04, 16GB RAM, 8 núcleos de CPU). A reconstrução falha devido a um erro de conexão do GitHub, e também estou enfrentando problemas com a acessibilidade da porta 443. Tentei várias etapas, mas estou travado e agradeceria sua ajuda.

Erro de Conexão do GitHub Durante a Reconstrução

Ao executar ./launcher rebuild app ou ./discourse-setup, a reconstrução falha com o seguinte erro nos logs:

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>

No entanto, testar a conectividade do GitHub a partir do host funciona bem:

curl -I https://github.com

HTTP/2 200

Mas executar como o usuário discourse falha:

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

A resolução de DNS para github.com funciona:

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

Você tem um firewall ativado? Provavelmente é o culpado.

Isso está dentro do contêiner? Podem haver regras de firewall diferentes aplicadas ao docker do que ao host.

Já configurei o auto-hospedagem no Google Cloud algumas vezes antes. No entanto, minha última tentativa, uma semana atrás, não funcionou. Ele continua me dando erros de caminho de dados 443 e GitHub, e não consigo reconstruir.

O fato de ter falhado em conectar após apenas 3ms significa que o problema está no host ou muito perto dele.

Quais alterações você fez no host? Você iniciou um firewall? Talvez ele esteja substituindo as regras de encaminhamento necessárias para o docker.

Comece examinando a conectividade IP do contêiner.

1 curtida