Среда сервера: 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
