Serwer kafelkowy OSM szybko i bezboleśnie dzięki dockerowi


Uruchomienie serwera kafelkowego OSM wedle oficjalnych instrukcji instalacyjnych potrafi być nie lada wyzwaniem. Dużo prędzej i znacznie bardziej bezboleśnie jest użyć odpowiedniego dockerowego kontentera – w tym wypadku overv/openstreetmap-tile-server. Poniższe instrukcje uruchamiają serwer kafelkowy dla obszaru Polski i czynią go dostępnym poprzez 127.0.0.1:10001/tile/.

wget http://download.geofabrik.de/europe/poland-latest.osm.pbf
mv poland-latest.osm.pbf /tmp/import.pbf
docker pull overv/openstreetmap-tile-server
docker volume create openstreetmap-data
docker volume create openstreetmap-rendered-tiles
docker run -v /tmp/import.pbf:/data.osm.pbf -v openstreetmap-data:/var/lib/postgresql/10/main overv/openstreetmap-tile-server import
docker run -p 10001:80 -e THREADS=2 -v openstreetmap-data:/var/lib/postgresql/10/main -v openstreetmap-rendered-tiles:/var/lib/mod_tile -d overv/openstreetmap-tile-server run

W konfiguracji Apache można sobie później stosownie skonfigurować proxy dodając wpisy ProxyPass i ProxyReverse do konfiguracji virtualhostów:

ProxyPass /tile/ http://127.0.0.1:10001/tile/
ProxyPassReverse /tile/ http://127.0.0.1:10001/tile/

Być może warto dodać też wpis CORS (można go odpowiednio bardziej ograniczyć, tutaj podaję dostęp bez ograniczeń):

Header set Access-Control-Allow-Origin "*"

Update: aby usługa uruchamiała się po restarcie dockera należy użyć parametru restart z odpowiednią wartością, np. –restart unless-stopped.