31
loading...
This website collects cookies to deliver better user experience
Dockefile
GetIP.conf # MaxMind からダウンロードしたライセンスファイル
FROM mautic/mautic:v3
RUN apt-get update && wget https://github.com/maxmind/geoipupdate/releases/download/v4.6.0/geoipupdate_4.6.0_linux_amd64.deb \
&& dpkg -i geoipupdate_4.6.0_linux_amd64.deb && rm geoipupdate_4.6.0_linux_amd64.deb
COPY GeoIP.conf /etc/GeoIP.conf
RUN sed -i -e '/^"$@" &/i mkdir -p /var/www/html/app/cache/ip_data && geoipupdate -f /etc/GeoIP.conf -d /var/www/html/app/cache/ip_data && chown www-data.www-data -R /var/www/html/app/cache/ip_data' /entrypoint.sh
RUN sed -i '/iplookup/s/^/#/g' /etc/cron.d/mautic && \
echo ' 0 4 15 * * www-data geoipupdate -f /etc/GeoIP.conf -d /var/www/html/app/cache/ip_data > /var/log/cron.pipe 2>&1' >> /etc/cron.d/mautic
geoipupdate
に関しては現在 4.7.1 までリリースされているのでバージョンは指定できるようにした方が良いとは思いますが、ここでは上記の issue に合ったものをそのまま使います。Dockerfile
のポイントは以下です。/etc/cron.d/mautic
に geoipupdate
を使ったジョブを追加し、既存の更新処理をコメントアウト/entrypoint.sh
の事前処理の最後に、初回の GeoLite2 データセットのダウンロードを実行
/var/www/html/app
は /entrypoint.sh
内で構築されるため、Dockerfile
内で処理はできないため、ここに記述しているip_data
を入れる先を /var/www/html/app/cache/ip_data
としています。$this->getDataDir().'/GeoLite2-City.mmdb'
$dataDir = $this->cacheDir.'/../ip_data';
AbstractLocalDataLookup
は AbstractLookup
を継承しており、初期化は以下の設定が反映されます。cacheDir
は kernel.cache_dir
になります。/var/www/html/var/cache/ip_data
を指定しなければいけません。# bin/console debug:container --parameter=kernel.cache_dir
------------------ ------------------------------
Parameter Value
------------------ ------------------------------
kernel.cache_dir /var/www/html/var/cache/prod
------------------ ------------------------------
31