서버 환경: VPS, 1Panel의 Docker를 사용하여 Discourse 배포
app.yml에서 MaxMind ID와 키를 설정하지 않고, 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
