This image extends the "justb4" Docker Image for MapProxy with MapServer binaries (no MapServer CGI).
Reason is that MapProxy supports directly calling the MapServer executable mapserv, i.s.o. of accessing MapServer via OGC WMS.
In my experience this is a huge performance gain in both MapProxy tile-seeding and tile-services.
Convention: <mapproxy-version>-<mapserver-version-<buildnr>, e.g. justb4/mapproxy-mapserver:1.12.0-7.2.2-1.
The setup is similar as in the "justb4" Docker Image for MapProxy README.
Only some extra config is needed for MapServer. Below an example for a docker-compose file.
services:
mapproxy:
image: justb4/mapproxy-mapserver:latest
container_name: mapproxy
environment:
- MAPPROXY_PROCESSES=4
- MAPPROXY_THREADS=2
- UWSGI_EXTRA_OPTIONS=--disable-logging --max-worker-lifetime 30
- DEBUG=0
- MAPSERVER_CATCH_SEGV=1
ports:
- "8086:8080"
volumes:
- ./config/mapproxy:/mapproxy
- ./config/mapserver:/mapserver
- /var/mapproxy_cache:/mapproxy_cache
The in your MapProxy config YAML you can refer to the MapServer binary. First in the sources: section where you would normally configure backend WMS-es:
sources:
.
.
labels_wms:
type: mapserver
req:
map: /mapserver/mymapfile.map
layers: labels
format: image/png
transparent: true
coverage:
bbox: [-20000.0,275000.0,300000.0,650000.0]
srs: 'EPSG:28992'
And the under globals indicate the location of the MapServer executable:
globals:
cache:
base_dir: '/mapproxy_cache'
.
.
.
# for calling MapServer directly
mapserver:
binary: /usr/bin/mapserv
working_dir: /tmp
The Mapproxy Documention shows some alternative config options.