services: postgis: image: postgis/postgis:16-3.4 container_name: better_maps_postgis restart: always environment: POSTGRES_USER: geoserver POSTGRES_PASSWORD: geoserver POSTGRES_DB: gis ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U geoserver -d gis"] interval: 10s timeout: 5s retries: 5 volumes: - postgis-data:/var/lib/postgresql/data networks: - geonet martin: image: ghcr.io/maplibre/martin:latest container_name: better_maps_martin restart: always depends_on: postgis: condition: service_healthy environment: DATABASE_URL: postgres://geoserver:geoserver@postgis:5432/gis command: - "--webui" - "enable-for-all" ports: - "3000:3000" healthcheck: test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:3000/health"] interval: 10s timeout: 5s retries: 3 networks: - geonet valhalla: image: ghcr.io/nilsnolde/docker-valhalla/valhalla:latest container_name: better_maps_valhalla restart: always depends_on: postgis: condition: service_healthy environment: tile_urls: "" build_admins: "True" build_time_zones: "True" force_rebuild: "False" serve_tiles: "True" server_threads: "16" volumes: - ${VALHALLA_DATA_DIR:?set VALHALLA_DATA_DIR in .env}:/custom_files ports: - "8002:8002" networks: - geonet cpus: 20 volumes: postgis-data: networks: geonet: driver: bridge