При попытке обновить Discourse через ./launcher rebuild app возникает ошибка:
fatal: unable to access 'https://github.com/discourse/REPO.git/': Failed to connect to github.com port 443: Connection timed out
Однако проблема в том, что иногда это не работает даже для самого Discourse. Но если повторить попытку сразу же, без каких-либо изменений, процесс может пройти, но завершиться ошибкой на одном из плагинов. Если удалить все плагины, подключение к Discourse может либо не сработать, либо пройти успешно, и тогда будет собрано всё целиком.
Я видел это:
Но я не знаю, как отладить сетевую конфигурацию контейнера.
У вас не совсем та проблема, о которой говорится в связанной вами теме, и похоже, что у вас периодическая проблема, которая всегда сложнее всего диагностируется. Но, возможно, вы могли бы попробовать ручную загрузку. Я попробовал это, что безвредно:
# cd /var/discourse/
# ./launcher enter app
Обнаружена архитектура x86_64.
# wget -O - -v https://github.com/discourse/logster.git/ |wc
--2023-01-04 15:30:25-- https://github.com/discourse/logster.git/
Разрешение github.com (github.com)... 140.82.121.4
Подключение к github.com (github.com)|140.82.121.4|:443... успешно.
HTTP-запрос отправлен, ожидается ответ... 301 Moved Permanently
Расположение: https://github.com/discourse/logster/ [следование]
--2023-01-04 15:30:25-- https://github.com/discourse/logster/
Повторное использование существующего соединения с github.com:443.
HTTP-запрос отправлен, ожидается ответ... 200 OK
Длина: не указана [text/html]
Сохранение в: 'STDOUT'
- [ <=> ] 231,22K --.-КБ/с в 0,06с
2023-01-04 15:30:26 (3,99 МБ/с) - записано в stdout [236767]
2751 15860 236767
#
Мы видим, что “github.com” был переведен в разумный IP-адрес, с ним установили соединение, и он вернул некоторые данные. Фактически команда, выполненная внутри контейнера, работала очень похоже на то, как она работает вне контейнера, что и ожидалось.
Вы используете поддерживаемый рецепт установки на известной хостинговой компании?
Хорошо, значит, он хотя бы пытается связаться с разумным IP-адресом. Я подозреваю проблемы с маршрутизацией, фаерволом или что-то на стороне хостинг-провайдера.
Если вы запустите тест вне контейнера, вы поймёте, проблема ли это конкретного контейнера или более общая проблема Linux.
Это проблема, специфичная для контейнера. Мне трудно понять, что могло её вызвать, так как я не вносил изменений в контейнер ранее, а сайту около 1,5 лет.
Примечание: я пробовал собирать приложение без каких-либо плагинов. Либо не удаётся загрузить сам Discourse, либо не удаётся клонировать третий или четвёртый плагин в списке (что означает, что при наличии только 2–3 плагинов приложение удаётся собрать с третьей-четвёртой попытки).
Это была версия 2.9.0.beta14 непосредственно перед попыткой обновления до 3.0.0.beta15. Конкретный ID не помню, но последнее обновление было где-то 25–26 декабря.
Дело не в том, что я пытался ограничить доступную информацию, а в том, что имя само по себе ничего не скажет, поскольку это не западная компания. Экземпляр был размещён у reg.ru — крупнейшего хостинг-провайдера в России. В любом случае, их поддержка на этот раз[1] тоже не помогла, поэтому я перенёс свой сайт на Digital Ocean. При тех же настройках и той же процедуре установки Docker всё заработало (и, похоже, продолжает работать) без проблем.