feat: docker-compose.build.yml – Europa z16 Build-Config, 12 CPUs 28GB RAM
This commit is contained in:
parent
83492ff96a
commit
c01ddeed31
4 changed files with 69 additions and 34 deletions
|
|
@ -4,17 +4,28 @@
|
|||
# Voraussetzung: Docker Desktop (macOS/Windows) oder Docker Engine (Linux)
|
||||
#
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
# DISK-ANFORDERUNGEN (auf dem Host-Rechner)
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
#
|
||||
# AREA=germany MAX_ZOOM=16: ~30 GB temp + ~12 GB output = ~50 GB frei
|
||||
# AREA=europe MAX_ZOOM=16: ~200 GB temp + ~80 GB output = ~350 GB frei
|
||||
# AREA=planet MAX_ZOOM=15: ~200 GB temp + ~80 GB output = ~350 GB frei
|
||||
# AREA=planet MAX_ZOOM=16: ~500 GB temp + ~300 GB output = ~900 GB frei
|
||||
#
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
# SCHRITT 1: Build starten
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
#
|
||||
# # Germany z0-16 (~12 GB Output, ~2h, 8 GB RAM)
|
||||
# # Germany z0-16 (empfohlen als Einstieg)
|
||||
# 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
|
||||
# # Planet z0-15 (~80 GB Output, ~8h, 28 GB RAM, ~350 GB Temp+Output Disk)
|
||||
# AREA=planet MAX_ZOOM=15 RAM=28g BUILD_CPUS=12 BUILD_MEM=30g \
|
||||
# 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
|
||||
# # Planet z0-16 (~300 GB Output, ~15h, 28 GB RAM, ~900 GB Temp+Output Disk)
|
||||
# AREA=planet MAX_ZOOM=16 RAM=28g BUILD_CPUS=12 BUILD_MEM=30g \
|
||||
# docker compose -f docker-compose.build.yml up
|
||||
#
|
||||
# Status verfolgen (zweites Terminal):
|
||||
# docker compose -f docker-compose.build.yml logs -f
|
||||
|
|
@ -23,8 +34,8 @@
|
|||
# SCHRITT 2: Ergebnis auf Server übertragen
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
#
|
||||
# rsync -avh --progress \
|
||||
# ./build/<AREA>.mbtiles \
|
||||
# rsync -avh --progress --partial \
|
||||
# ./build/output/<AREA>.mbtiles \
|
||||
# rd13server@192.168.178.6:/mnt/services-data/rd13_tile_server/data/osm-<AREA>.mbtiles
|
||||
#
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
|
|
@ -35,32 +46,31 @@
|
|||
# "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)
|
||||
# curl https://tiles.rd13server.de/catalog | python3 -m json.tool | grep -i area
|
||||
|
||||
services:
|
||||
planetiler-build:
|
||||
image: ghcr.io/onthegomap/planetiler:latest
|
||||
container_name: rd13_planetiler_build
|
||||
volumes:
|
||||
- ./build:/data
|
||||
# Output: fertige MBTiles
|
||||
- ./build/output:/output
|
||||
# Source-Cache: OSM-PBF wird hier gecacht (verhindert Re-Download bei Neustart)
|
||||
- ./build/sources:/data/sources
|
||||
# Temp: sehr viel Platz nötig (siehe Tabelle oben)
|
||||
- ./build/tmp:/data/tmp
|
||||
environment:
|
||||
- JAVA_TOOL_OPTIONS=-Xmx${RAM:-8g}
|
||||
- JAVA_TOOL_OPTIONS=-Xmx${RAM:-8g} -Xms2g -XX:+UseG1GC -XX:MaxGCPauseMillis=200
|
||||
command:
|
||||
- "--download"
|
||||
- "--area=${AREA:-germany}"
|
||||
- "--output=/data/${AREA:-germany}.mbtiles"
|
||||
- "--output=/output/${AREA:-germany}.mbtiles"
|
||||
- "--maxzoom=${MAX_ZOOM:-16}"
|
||||
- "--nodemap-type=sortedtable"
|
||||
- "--force"
|
||||
restart: "no"
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${BUILD_CPUS:-8.0}"
|
||||
cpus: "${BUILD_CPUS:-4.0}"
|
||||
memory: ${BUILD_MEM:-12g}
|
||||
|
|
|
|||
|
|
@ -66,30 +66,34 @@ curl -s "http://localhost:9983/osm-intl/0/0/0.png" > /tmp/test.png && file /tmp/
|
|||
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.
|
||||
|
||||
**Europa z16 (empfohlen):** ~280 GB Host-Disk, ~8–12h, 12 CPUs / 28 GB RAM
|
||||
|
||||
```bash
|
||||
# Auf dem HOST-RECHNER ausführen (nicht auf dem Server):
|
||||
cd /path/to/rd13_tile_server
|
||||
# Auf dem HOST-RECHNER ausführen (im geklonten Repo-Verzeichnis):
|
||||
|
||||
# Germany z0-16 (~12 GB, ~2h, 8 GB RAM)
|
||||
AREA=germany MAX_ZOOM=16 RAM=8g docker compose -f docker-compose.build.yml up
|
||||
# Europa z0-16 (~80 GB Output, ~8-12h, ~280 GB Disk nötig)
|
||||
AREA=europe MAX_ZOOM=16 RAM=28g BUILD_CPUS=12 BUILD_MEM=30g \
|
||||
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
|
||||
# Germany z0-16 (kleiner Test: ~12 GB Output, ~2h, ~50 GB Disk)
|
||||
AREA=germany MAX_ZOOM=16 RAM=8g \
|
||||
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
|
||||
# Fertiges MBTiles auf Server übertragen (resume-fähig):
|
||||
rsync -avh --progress --partial \
|
||||
./build/output/europe.mbtiles \
|
||||
rd13server@192.168.178.6:/mnt/services-data/rd13_tile_server/data/osm-europe.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
|
||||
curl https://tiles.rd13server.de/catalog | python3 -m json.tool | grep osm-europe
|
||||
```
|
||||
|
||||
Output liegt lokal unter `./build/<AREA>.mbtiles` (gitignored).
|
||||
Build-Output liegt lokal unter `./build/output/<AREA>.mbtiles` (gitignored).
|
||||
Sources-Cache unter `./build/sources/` – bei Rebuild nicht löschen (spart Re-Download).
|
||||
|
||||
### Satellit-Tiles herunterladen (einmalig, ~38 GB, ~24h)
|
||||
|
||||
|
|
|
|||
|
|
@ -66,8 +66,29 @@ Lösung: eigenständiger Docker-Container für Downloads.
|
|||
`docker-compose.download.yml` erstellt, Script mit `flush=True` robuster gemacht.
|
||||
Überreste bereinigt: satellite.mbtiles (4 KB stub), satellite.mbtiles-shm/wal, satellite.log.
|
||||
|
||||
### Prompt 10
|
||||
Starte nochmal alle neu ich habe nochmal etwas mehr Ressourcen bereitgestellt.
|
||||
### Prompt 11
|
||||
Lass uns gleich planet bauen wenn das geht. Und achte wieder auf Robustheit und Ressourcenverbrauch. Du kannst bis zu 12 CPUs und 32 GB RAM verwenden auf meinem Host-Rechner.
|
||||
|
||||
### Antwort 11
|
||||
Disk-Analyse: Server hat 555 GB frei, Planet z16 bräuchte ~900 GB auf dem Host → nicht empfohlen.
|
||||
docker-compose.build.yml robuster gemacht: Volumes aufgeteilt (output/sources/tmp getrennt), `--nodemap-type=sortedtable` für weniger RAM, G1GC-JVM-Flags, Disk-Anforderungen in Kommentaren.
|
||||
|
||||
### Prompt 12
|
||||
Ok dann lass uns das nur für Europa in z16 bauen. Wie viel wären es dann?
|
||||
|
||||
### Antwort 12
|
||||
Europa z16: ~25 GB Sources + ~150 GB Temp + ~80 GB Output = ~280 GB auf Host. Server: +80 GB (555 GB frei → kein Problem). Buildzeit: ~8–12h mit 12 CPUs.
|
||||
|
||||
### Prompt 13
|
||||
Ok ja so bauen wir es!
|
||||
|
||||
### Antwort 13
|
||||
docker-compose.build.yml committed. Startbefehl für Host:
|
||||
```bash
|
||||
AREA=europe MAX_ZOOM=16 RAM=28g BUILD_CPUS=12 BUILD_MEM=30g \
|
||||
docker compose -f docker-compose.build.yml up
|
||||
```
|
||||
|
||||
|
||||
### Antwort 10
|
||||
OOM-Ursache identifiziert: Script submittete alle 5,5 Mio Futures gleichzeitig in eine Liste → Memory-Spike beim Aufbau.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# PROJECT_CONTEXT – rd13_tile_server
|
||||
|
||||
**Letzte Aktualisierung:** 2026-06-13 – Satellit-Download läuft stabil (16 Threads, 2GB RAM-Limit, OOM-Fix). Download-Container eigenständig.
|
||||
**Letzte Aktualisierung:** 2026-06-13 – Satellit-Download läuft (~372 MB, stabil). Europa z16 Build-Container vorbereitet für Host-Rechner.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue