Надеюсь, кто-то сможет помочь. У меня уже больше 12 месяцев не возникало проблем с обновлением моего форума, который работает в контейнере Docker на EC2.
Я пробовал:
очистку launcher, но проблем с местом на диске нет
последнюю команду git pull
многократную пересборку приложения
даже пробовал выполнить discourse-setup и собирался попробовать восстановление базы данных
перезагрузку сервера
apt-get update; apt-get upgrade
Вот конец лога:
Done compressing all JS files : 88.88 secs
rake aborted!
SocketError: Failed to open TCP connection to geolite.maxmind.com:443 (getaddrinfo: No address associated with hostname)
/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'
Caused by:
SocketError: getaddrinfo: No address associated with hostname
/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
I, [2019-12-30T18:56:27.608998 #1] INFO -- : Downloading MaxMindDB...
Compressing Javascript and Generating Source Maps
I, [2019-12-30T18:56:27.633923 #1] INFO -- : Terminating async processes
I, [2019-12-30T18:56:27.637383 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid: 49
I, [2019-12-30T18:56:27.639770 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 166
166:signal-handler (1577732187) Received SIGTERM scheduling shutdown...
2019-12-30 18:56:27.639 UTC [49] LOG: received fast shutdown request
2019-12-30 18:56:27.654 UTC [49] LOG: aborting any active transactions
166:M 30 Dec 2019 18:56:27.666 # User requested shutdown...
166:M 30 Dec 2019 18:56:27.694 * Saving the final RDB snapshot before exiting.
2019-12-30 18:56:27.702 UTC [49] LOG: worker process: logical replication launcher (PID 58) exited with exit code 1
2019-12-30 18:56:27.711 UTC [53] LOG: shutting down
2019-12-30 18:56:27.819 UTC [49] LOG: database system is shut down
166:M 30 Dec 2019 18:56:27.885 * DB saved on disk
166:M 30 Dec 2019 18:56:27.886 # Redis is now ready to exit, bye bye...
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake assets:precompile' failed with return #<Process::Status: pid 507 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake assets:precompile'"]}
fcf17d793c27c4e87616420ead222cc3f4a9fc163f239a5542b1c9a092579b30
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
Очень надеюсь, что кто-то сможет пролить свет на эту ситуацию.
Теперь мы поддерживаем официально одобренный способ получения баз данных согласно:
Если вы хотите получать регулярные обновления от MaxMind, вам необходимо перейти на GeoLite sign up | MaxMind, зарегистрировать учётную запись и сгенерировать лицензионный ключ.
Затем вам нужно будет изменить конфигурацию вашего контейнера, добавив ключ в секцию env::
Это исправление гарантирует, что больше не будет «бомбы замедленного действия». Если у нас нет лицензионного ключа, мы никогда не будем пытаться загружать файлы.
Мы обсуждаем с MaxMind возможность включения обновлённых баз данных в наши новые базовые образы. В зависимости от исхода для самохостеров есть два варианта:
Отсутствие разрешения IP-адресов на странице профиля пользователя и в панели администратора до добавления лицензии.
Устаревшее разрешение IP-адресов в течение N дней с момента получения базового образа (то есть после выполнения команды ./launcher rebuild app).
Скорее всего, для самохостеров будет реализован вариант (1).
Мы также рассматриваем другие альтернативы, но наши возможности здесь довольно ограничены.
Я категорически против добавления в ядро функциональности для поиска IP-адресов через веб-сервис, так как это раскрывает информацию третьей стороне. Существует только два основных варианта, и оба требуют регистрации.
Могу подтвердить, что мы смогли зарегистрировать аккаунт без проблем. По вопросам, связанным с аккаунтом, вам необходимо обратиться в службу поддержки MaxMind; мы не можем помочь с этим здесь.
Спасибо всем, кто работал над быстрым исправлением в последние несколько недель. Пришлось проделать то же самое с Matomo, что было гораздо более болезненно (вручную).
Это подводит меня к моему вопросу: Где именно используются данные MaxMind? Только в случаях, когда администраторы просматривают IP-адреса пользователей? Или есть что-то ещё, о чём я не подумал?
Очевидно, что у меня уже есть аккаунт MM, но я задаюсь вопросом, стоит ли прилагать усилия для этого с какой-либо срочностью.
Она выполняет географический поиск по IP-адресам. Я недавно выполнил множество установок и обновлений без настройки API-ключа, и пересборки работали без проблем. (текущая версия — beta 10)
Кроме того, получить ключ для загрузки базы данных несложно.
Я надеюсь, что на следующей неделе обновлю утилиту discourse-setup, чтобы добавить поддержку ключа.
Верно, они используются администраторами для определения IP-адресов пользователей. Также для списка «недавно использованные устройства» в настройках пользователя и для оповещений администраторов при обнаружении входа в аккаунт с нового местоположения.
Извините за вторжение, но я хотел спросить, планируется ли сохранить возможность отключения поиска по IP. Мне кажется, что принуждение администраторов к подписке на сторонний сервис — не лучшая идея. У меня уже есть лицензионный ключ для других целей, поэтому я говорю в общем смысле.
Если вы не введёте лицензионный ключ, он будет отключён. Никаких принудительных требований для администраторов по его настройке нет.
Также, на случай возможной путаницы, Discourse никогда не передаёт IP-адреса третьим сторонам. Discourse загружает полную базу данных геолокации IP-адресов от MaxMind и затем выполняет поиск внутренними средствами.