feat: docker-compose.build.yml – Planetiler Build-Container für z16 auf Host-Rechner

This commit is contained in:
Conrad Schulz 2026-06-13 10:31:21 +00:00
parent 407f6c4faf
commit 83492ff96a
3 changed files with 99 additions and 0 deletions

3
.gitignore vendored
View file

@ -1,6 +1,9 @@
# Datendateien nicht im Repo (können mehrere GB groß sein) # Datendateien nicht im Repo (können mehrere GB groß sein)
data/* data/*
# Planetiler Build-Output (Host-Build, nicht auf dem Server)
build/
# Laufzeit # Laufzeit
.env .env

66
docker-compose.build.yml Normal file
View file

@ -0,0 +1,66 @@
# Planetiler Build Vektor-Tiles für höhere Zoom-Level
#
# LÄUFT AUF DEM HOST-RECHNER (nicht auf dem Server).
# Voraussetzung: Docker Desktop (macOS/Windows) oder Docker Engine (Linux)
#
# ══════════════════════════════════════════════════════════════════════
# SCHRITT 1: Build starten
# ══════════════════════════════════════════════════════════════════════
#
# # Germany z0-16 (~12 GB Output, ~2h, 8 GB RAM)
# AREA=germany MAX_ZOOM=16 RAM=8g docker compose -f docker-compose.build.yml up
#
# # Austria z0-16 (~2 GB Output, ~20min, 4 GB RAM)
# AREA=austria MAX_ZOOM=16 RAM=4g docker compose -f docker-compose.build.yml up
#
# # Europe z0-16 (~80 GB Output, ~12h, 16 GB RAM)
# AREA=europe MAX_ZOOM=16 RAM=16g docker compose -f docker-compose.build.yml up
#
# Status verfolgen (zweites Terminal):
# docker compose -f docker-compose.build.yml logs -f
#
# ══════════════════════════════════════════════════════════════════════
# SCHRITT 2: Ergebnis auf Server übertragen
# ══════════════════════════════════════════════════════════════════════
#
# rsync -avh --progress \
# ./build/<AREA>.mbtiles \
# rd13server@192.168.178.6:/mnt/services-data/rd13_tile_server/data/osm-<AREA>.mbtiles
#
# ══════════════════════════════════════════════════════════════════════
# SCHRITT 3: Martin auf dem Server neu starten
# ══════════════════════════════════════════════════════════════════════
#
# ssh rd13server@192.168.178.6 \
# "cd /mnt/services-data/rd13_tile_server && docker compose restart martin"
#
# # Neue Source prüfen:
# curl https://tiles.rd13server.de/catalog | grep osm-<AREA>
#
# ══════════════════════════════════════════════════════════════════════
# UMGEBUNGSVARIABLEN (Defaults)
# ══════════════════════════════════════════════════════════════════════
# AREA = germany (germany | austria | switzerland | europe | planet)
# MAX_ZOOM = 16 (14 = Planet-Level, 16 = Detail)
# RAM = 8g (Java Heap: 8g für DE, 16g für EU)
services:
planetiler-build:
image: ghcr.io/onthegomap/planetiler:latest
container_name: rd13_planetiler_build
volumes:
- ./build:/data
environment:
- JAVA_TOOL_OPTIONS=-Xmx${RAM:-8g}
command:
- "--download"
- "--area=${AREA:-germany}"
- "--output=/data/${AREA:-germany}.mbtiles"
- "--maxzoom=${MAX_ZOOM:-16}"
- "--force"
restart: "no"
deploy:
resources:
limits:
cpus: "${BUILD_CPUS:-8.0}"
memory: ${BUILD_MEM:-12g}

View file

@ -61,6 +61,36 @@ curl -s http://localhost:9982/osm | jq .
curl -s "http://localhost:9983/osm-intl/0/0/0.png" > /tmp/test.png && file /tmp/test.png curl -s "http://localhost:9983/osm-intl/0/0/0.png" > /tmp/test.png && file /tmp/test.png
``` ```
### Höhere Zoom-Level bauen (auf Host-Rechner, nicht auf dem Server)
Planetiler läuft in einem eigenen Container auf dem **Host-Rechner** (MacBook, Desktop-PC
etc.) mit genug RAM. Das Ergebnis wird per `rsync` auf den Server übertragen.
```bash
# Auf dem HOST-RECHNER ausführen (nicht auf dem Server):
cd /path/to/rd13_tile_server
# Germany z0-16 (~12 GB, ~2h, 8 GB RAM)
AREA=germany MAX_ZOOM=16 RAM=8g docker compose -f docker-compose.build.yml up
# Europe z0-16 (~80 GB, ~12h, 16 GB RAM)
AREA=europe MAX_ZOOM=16 RAM=16g docker compose -f docker-compose.build.yml up
# Fertige Datei auf Server übertragen (resume-fähig via rsync):
rsync -avh --progress \
./build/germany.mbtiles \
rd13server@192.168.178.6:/mnt/services-data/rd13_tile_server/data/osm-germany.mbtiles
# Martin auf dem Server neu starten:
ssh rd13server@192.168.178.6 \
"cd /mnt/services-data/rd13_tile_server && docker compose restart martin"
# Neue Source prüfen:
curl https://tiles.rd13server.de/catalog | python3 -m json.tool | grep osm-germany
```
Output liegt lokal unter `./build/<AREA>.mbtiles` (gitignored).
### Satellit-Tiles herunterladen (einmalig, ~38 GB, ~24h) ### Satellit-Tiles herunterladen (einmalig, ~38 GB, ~24h)
Der Download läuft in einem eigenen Container vollständig unabhängig von Der Download läuft in einem eigenen Container vollständig unabhängig von