Исправление предупреждения MaxMindDB в логах ошибок

Среда сервера: VPS, развертывание Discourse через Docker в 1Panel

Решение для случаев, когда в app.yml не указаны ID и ключ MaxMind, а файлы GeoLite2-City.mmdb и GeoLite2-ASN.mmdb автоматически периодически загружаются через зеркало GitHub.

Позволяет устранить следующие два предупреждения MaxMindDB в логах ошибок:

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb

Процесс:

1. Создание директории maxmind на хост-машине и настройка прав доступа

mkdir -p /opt/1panel/apps/discourse/shared/standalone/maxmind && chmod 755 /opt/1panel/apps/discourse/shared/standalone/maxmind && chown 1000:1000 /opt/1panel/apps/discourse/shared/standalone/maxmind

2. Настройка монтирования файлов GeoLite2-City.mmdb и GeoLite2-ASN.mmdb на хост-машину:

Отредактируйте файл app.yml и добавьте:

  - volume:
      host: /opt/1panel/apps/discourse/shared/standalone/maxmind/GeoLite2-City.mmdb
      guest: /var/www/discourse/vendor/data/GeoLite2-City.mmdb
  - volume:
      host: /opt/1panel/apps/discourse/shared/standalone/maxmind/GeoLite2-ASN.mmdb
      guest: /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb

3. Настройка в 1Panel планового задания для еженедельной загрузки и обновления файлов карт GeoLite2-City.mmdb и GeoLite2-ASN.mmdb с GitHub:

Скрипт планового задания:

cd /opt/1panel/apps/discourse/shared/standalone/maxmind && rm -f GeoLite2-City.mmdb GeoLite2-ASN.mmdb && wget -O GeoLite2-City.mmdb https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-City.mmdb && wget -O GeoLite2-ASN.mmdb https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-ASN.mmdb && chmod 644 GeoLite2-City.mmdb GeoLite2-ASN.mmdb && chown 1000:1000 GeoLite2-City.mmdb GeoLite2-ASN.mmdb