feat: docker-compose.build.yml – Planetiler Build-Container für z16 auf Host-Rechner
This commit is contained in:
parent
407f6c4faf
commit
83492ff96a
3 changed files with 99 additions and 0 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -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
66
docker-compose.build.yml
Normal 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}
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue