解决错误日志中MaxMindDB警告

服务器环境:VPS,通过1Panel 中docker 部署discourse

适用于app.yml中不设置maxmind id 和key,而通过GitHub镜像自动定期下载GeoLite2-City.mmdb和GeoLite2-ASN.mmdb的情况。

可以解决错误日志中以下两个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设置计划任务,每周定期从github上下载更新地图文件GeoLite2-City.mmdb和GeoLite2-ASN.mmdb

计划任务脚本如下:

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