MapServer-configuratie voor map.data.amsterdam.nl.
- Hernoem
.env-example
naar.env
- Pas in
.env
het pad aan waar je je Database DIR neer wil zetten. - Start de database:
docker-compose up -d database
. - Vul de gewenste tabellen in de database, die woont op localhost, poort 5403.
- Bouw Docker image met MapServer:
docker-compose build map
. - Start MapServer:
docker-compose run -p "8383:80" -v /tmp/srv/lufo:/mnt/lufo -v /tmp/srv/infrarood/:/mnt/infrarood map
.
Test nu of MapServer werkt:
curl --head http://localhost:8383/maps/index.json
Als dit geen foutmelding geeft, dan kunnen kaarten nu benaderd worden als WFS of WMS, via bijv. QGIS. De kaarten hebben URL's zoals
http://localhost:8383/maps/meetbouten?service=WMS&request=GetCapabilities
Zorg dat de database blijft draaien en voeg daarin data toe. Na elke wijziging aan een mapfile moet de MapServer-container opnieuw worden opgebouwd en opgestart volgens de instructies hierboven.
Sommige mapfiles worden gegenereerd door Python-scripts. Deze zijn te herkennen aan een commentaartje als
# GENERATED BY gen_bomen.py, DO NOT EDIT.
In dit geval moet het genereerscript, hier gen_bomen.py
, worden aangepast
in plaats van de mapfile zelf. Daarna moet het worden gedraaid als
python3 gen_bomen.py > bomen.map
waarna de Docker-container opnieuw moet worden opgebouwd.
Als de wijzigingen aan het script klaar zijn, moeten zowel script als mapfile
worden gecommit in Git (git add bomen.map gen_bomen.py
, etc.). Tijdens
CI/CD wordt gecontroleerd of script en resultaat consistent met elkaar zijn;
zie .github/workflows/
.
De mapfiles in de directory private/
worden door een apart Docker-container
geserved, die weer een container proxy
nodig heeft. Zie
docker-compose.yml
en de map jwtproxy
.
Voeg de volgende regels toe aan de file header.inc
en start de container
opnieuw:
CONFIG "MS_ERRORFILE" "/tmp/ms_error.txt"
DEBUG 5
Na het opvragen van een map zal dan de logging te zien zijn via:
docker exec -it `docker-compose ps -q map` bash -c 'tail -f /tmp/ms_error.txt'