Не удалось восстановить Discourse: ошибка подключения к GitHub и проблемы с портом 443 в GCP

Привет, сообщество Discourse,

У меня возникли проблемы с пересборкой моего экземпляра Discourse на виртуальной машине Google Cloud Platform (GCP) (Ubuntu 22.04, 16 ГБ ОЗУ, 8 ядер CPU). Пересборка завершается ошибкой из-за проблемы с подключением к GitHub, а также у меня возникают трудности с доступностью порта 443. Я уже пробовал несколько шагов, но застрял и буду благодарен за вашу помощь.

Ошибка подключения к GitHub во время пересборки

При запуске ./launcher rebuild app или ./discourse-setup пересборка завершается ошибкой со следующим сообщением в логах:

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>

Однако проверка подключения к GitHub с хоста работает корректно:

curl -I https://github.com

HTTP/2 200

Но при запуске от имени пользователя discourse происходит сбой:

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

Разрешение DNS для github.com работает:

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

У вас включен брандмауэр? Скорее всего, проблема в нём.

Это внутри контейнера? Для Docker могут применяться другие правила брандмауэра, чем для хоста.

Я уже несколько раз настраивал саморазмещение в Google Cloud. Однако моя последняя попытка, сделанная неделю назад, не увенчалась успехом. Система постоянно выдаёт ошибки 443 и ошибки пути данных GitHub, и я не могу пересобрать систему.

Тот факт, что подключение не удалось уже через 3 мс, означает, что проблема находится на хосте или очень близко к нему.

Какие изменения вы внесли на хосте? Вы включили брандмауэр? Возможно, он перезаписывает необходимые правила пересылки для Docker.

Начните с проверки IP-соединения контейнера.