Reconstrução do Discourse falha durante o bootstrap: timeout HTTPS do Git, procurando uma solução limpa baseada em SSH

Olá,

Estou executando uma instalação padrão do Discourse auto-hospedado no Ubuntu usando a configuração oficial discourse_docker.

Ambiente

  • Ubuntu Server
  • Docker
  • discourse_docker oficial
  • Instalação de único contêiner (app.yml)
  • Reconstrução realizada usando:
cd /var/discourse
./launcher rebuild app

Problema

O processo de reconstrução falha durante a fase de inicialização (bootstrap) quando o Discourse tenta atualizar o código-fonte do aplicativo a partir do GitHub.

A falha ocorre em:

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

e gera:

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

seguido por:

FAILED
bootstrap failed with exit code 128

Descobertas Importantes

O GitHub é acessível via HTTPS

No host:

curl -I https://github.com

funciona corretamente.

Também:

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

funciona corretamente.

Git sobre HTTPS é pouco confiável no meu ambiente

Dentro do ambiente do Discourse:

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

falha com:

SSL connection timeout

Pela minha investigação, isso parece ser causado por problemas na conectividade do meu provedor de internet com o GitHub via HTTPS. No momento, não estou tentando resolver esse problema de rede em si. Em vez disso, estou procurando uma maneira de realizar reconstruções do Discourse usando SSH, já que a conectividade SSH com o GitHub funciona corretamente no meu ambiente.

Autenticação SSH do GitHub funciona

Gerei uma nova chave SSH, adicionei-a ao GitHub e verifiquei a autenticação:

ssh -T git@github.com

retorna:

Olá <username>! Você autenticou com sucesso, mas o GitHub não fornece acesso ao shell.

Também:

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

funciona com sucesso a partir do host.

URLs do repositório

No host, alterei /var/discourse para usar SSH:

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

e as operações do Git funcionam.

No entanto, dentro do contêiner do aplicativo Discourse:

cd /var/www/discourse
git remote -v

mostra:

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

Portanto, durante a inicialização, o Discourse ainda tenta usar HTTPS.

O Que Gostaria de Conquistar

Meu objetivo principal é fazer com que a reconstrução do Discourse seja confiável em um ambiente onde as conexões HTTPS com o GitHub são instáveis ou frequentemente dão timeout.

Gostaria de saber:

  1. Existe uma maneira oficialmente suportada de fazer com que a inicialização e a reconstrução do Discourse usem o GitHub via SSH em vez de HTTPS?
  2. Se não, qual é a abordagem recomendada para ambientes onde o Git HTTPS é pouco confiável, mas o SSH funciona corretamente?
  3. Existe um método suportado para injetar credenciais SSH na fase de inicialização/construção?
  4. Alguém configurou com sucesso o discourse_docker para buscar atualizações do código-fonte do Discourse via SSH?

Prefiro uma solução que sobreviva a futuras atualizações, mas também estou interessado em entender se a busca baseada em SSH durante a inicialização é tecnicamente suportada.

Qualquer orientação seria muito apreciada.

Obrigado.